/*
 * Copyright [2013-2021], Alibaba Group Holding Limited
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: polarx_resultset.proto

package com.mysql.cj.polarx.protobuf;

public final class PolarxResultset {
  private PolarxResultset() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface FetchDoneMoreOutParamsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Resultset.FetchDoneMoreOutParams)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * resultsets are finished, OUT paramset is next
   * </pre>
   *
   * Protobuf type {@code Polarx.Resultset.FetchDoneMoreOutParams}
   */
  public  static final class FetchDoneMoreOutParams extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Resultset.FetchDoneMoreOutParams)
      FetchDoneMoreOutParamsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FetchDoneMoreOutParams.newBuilder() to construct.
    private FetchDoneMoreOutParams(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private FetchDoneMoreOutParams() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new FetchDoneMoreOutParams();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private FetchDoneMoreOutParams(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FetchDoneMoreOutParams_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FetchDoneMoreOutParams_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams.class, com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams.Builder.class);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams other = (com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams) obj;

      return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * resultsets are finished, OUT paramset is next
     * </pre>
     *
     * Protobuf type {@code Polarx.Resultset.FetchDoneMoreOutParams}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Resultset.FetchDoneMoreOutParams)
        com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParamsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FetchDoneMoreOutParams_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FetchDoneMoreOutParams_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams.class, com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FetchDoneMoreOutParams_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams build() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams result = new com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Resultset.FetchDoneMoreOutParams)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Resultset.FetchDoneMoreOutParams)
    private static final com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<FetchDoneMoreOutParams>
        PARSER = new com.google.protobuf.AbstractParser<FetchDoneMoreOutParams>() {
      @java.lang.Override
      public FetchDoneMoreOutParams parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new FetchDoneMoreOutParams(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<FetchDoneMoreOutParams> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<FetchDoneMoreOutParams> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreOutParams getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface FetchDoneMoreResultsetsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Resultset.FetchDoneMoreResultsets)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * resultset and out-params are finished, but more resultsets available
   * </pre>
   *
   * Protobuf type {@code Polarx.Resultset.FetchDoneMoreResultsets}
   */
  public  static final class FetchDoneMoreResultsets extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Resultset.FetchDoneMoreResultsets)
      FetchDoneMoreResultsetsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FetchDoneMoreResultsets.newBuilder() to construct.
    private FetchDoneMoreResultsets(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private FetchDoneMoreResultsets() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new FetchDoneMoreResultsets();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private FetchDoneMoreResultsets(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FetchDoneMoreResultsets_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FetchDoneMoreResultsets_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets.class, com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets.Builder.class);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets other = (com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets) obj;

        return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * resultset and out-params are finished, but more resultsets available
     * </pre>
     *
     * Protobuf type {@code Polarx.Resultset.FetchDoneMoreResultsets}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Resultset.FetchDoneMoreResultsets)
        com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsetsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FetchDoneMoreResultsets_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FetchDoneMoreResultsets_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets.class, com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FetchDoneMoreResultsets_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets build() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets result = new com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Resultset.FetchDoneMoreResultsets)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Resultset.FetchDoneMoreResultsets)
    private static final com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<FetchDoneMoreResultsets>
        PARSER = new com.google.protobuf.AbstractParser<FetchDoneMoreResultsets>() {
      @java.lang.Override
      public FetchDoneMoreResultsets parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new FetchDoneMoreResultsets(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<FetchDoneMoreResultsets> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<FetchDoneMoreResultsets> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneMoreResultsets getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface FetchDoneOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Resultset.FetchDone)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional uint64 examined_row_count = 1;</code>
     * @return Whether the examinedRowCount field is set.
     */
    boolean hasExaminedRowCount();
    /**
     * <code>optional uint64 examined_row_count = 1;</code>
     * @return The examinedRowCount.
     */
    long getExaminedRowCount();

    /**
     * <code>optional bytes chosen_index = 2;</code>
     * @return Whether the chosenIndex field is set.
     */
    boolean hasChosenIndex();
    /**
     * <code>optional bytes chosen_index = 2;</code>
     * @return The chosenIndex.
     */
    com.google.protobuf.ByteString getChosenIndex();
  }
  /**
   * <pre>
   * all resultsets are finished
   * </pre>
   *
   * Protobuf type {@code Polarx.Resultset.FetchDone}
   */
  public  static final class FetchDone extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Resultset.FetchDone)
      FetchDoneOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FetchDone.newBuilder() to construct.
    private FetchDone(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private FetchDone() {
      chosenIndex_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new FetchDone();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private FetchDone(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              examinedRowCount_ = input.readUInt64();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              chosenIndex_ = input.readBytes();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FetchDone_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FetchDone_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone.class, com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone.Builder.class);
    }

    private int bitField0_;
    public static final int EXAMINED_ROW_COUNT_FIELD_NUMBER = 1;
    private long examinedRowCount_;
    /**
     * <code>optional uint64 examined_row_count = 1;</code>
     * @return Whether the examinedRowCount field is set.
     */
    public boolean hasExaminedRowCount() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint64 examined_row_count = 1;</code>
     * @return The examinedRowCount.
     */
    public long getExaminedRowCount() {
      return examinedRowCount_;
    }

    public static final int CHOSEN_INDEX_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString chosenIndex_;
    /**
     * <code>optional bytes chosen_index = 2;</code>
     * @return Whether the chosenIndex field is set.
     */
    public boolean hasChosenIndex() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional bytes chosen_index = 2;</code>
     * @return The chosenIndex.
     */
    public com.google.protobuf.ByteString getChosenIndex() {
      return chosenIndex_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt64(1, examinedRowCount_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBytes(2, chosenIndex_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, examinedRowCount_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, chosenIndex_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone other = (com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone) obj;

      if (hasExaminedRowCount() != other.hasExaminedRowCount()) return false;
      if (hasExaminedRowCount()) {
        if (getExaminedRowCount()
            != other.getExaminedRowCount()) return false;
      }
      if (hasChosenIndex() != other.hasChosenIndex()) return false;
      if (hasChosenIndex()) {
        if (!getChosenIndex()
            .equals(other.getChosenIndex())) return false;
      }
        return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasExaminedRowCount()) {
        hash = (37 * hash) + EXAMINED_ROW_COUNT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getExaminedRowCount());
      }
      if (hasChosenIndex()) {
        hash = (37 * hash) + CHOSEN_INDEX_FIELD_NUMBER;
        hash = (53 * hash) + getChosenIndex().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * all resultsets are finished
     * </pre>
     *
     * Protobuf type {@code Polarx.Resultset.FetchDone}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Resultset.FetchDone)
        com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDoneOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FetchDone_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FetchDone_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone.class, com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        examinedRowCount_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        chosenIndex_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FetchDone_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone build() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone result = new com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.examinedRowCount_ = examinedRowCount_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.chosenIndex_ = chosenIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone.getDefaultInstance()) return this;
        if (other.hasExaminedRowCount()) {
          setExaminedRowCount(other.getExaminedRowCount());
        }
        if (other.hasChosenIndex()) {
          setChosenIndex(other.getChosenIndex());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long examinedRowCount_ ;
      /**
       * <code>optional uint64 examined_row_count = 1;</code>
       * @return Whether the examinedRowCount field is set.
       */
      public boolean hasExaminedRowCount() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional uint64 examined_row_count = 1;</code>
       * @return The examinedRowCount.
       */
      public long getExaminedRowCount() {
        return examinedRowCount_;
      }
      /**
       * <code>optional uint64 examined_row_count = 1;</code>
       * @param value The examinedRowCount to set.
       * @return This builder for chaining.
       */
      public Builder setExaminedRowCount(long value) {
        bitField0_ |= 0x00000001;
        examinedRowCount_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional uint64 examined_row_count = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearExaminedRowCount() {
        bitField0_ = (bitField0_ & ~0x00000001);
        examinedRowCount_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString chosenIndex_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes chosen_index = 2;</code>
       * @return Whether the chosenIndex field is set.
       */
      public boolean hasChosenIndex() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional bytes chosen_index = 2;</code>
       * @return The chosenIndex.
       */
      public com.google.protobuf.ByteString getChosenIndex() {
        return chosenIndex_;
      }
      /**
       * <code>optional bytes chosen_index = 2;</code>
       * @param value The chosenIndex to set.
       * @return This builder for chaining.
       */
      public Builder setChosenIndex(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        chosenIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes chosen_index = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearChosenIndex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        chosenIndex_ = getDefaultInstance().getChosenIndex();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Resultset.FetchDone)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Resultset.FetchDone)
    private static final com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<FetchDone>
        PARSER = new com.google.protobuf.AbstractParser<FetchDone>() {
      @java.lang.Override
      public FetchDone parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new FetchDone(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<FetchDone> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<FetchDone> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxResultset.FetchDone getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ColumnMetaDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Resultset.ColumnMetaData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * datatype of the field in a row
     * </pre>
     *
     * <code>required .Polarx.Resultset.ColumnMetaData.FieldType type = 1;</code>
     * @return Whether the type field is set.
     */
    boolean hasType();
    /**
     * <pre>
     * datatype of the field in a row
     * </pre>
     *
     * <code>required .Polarx.Resultset.ColumnMetaData.FieldType type = 1;</code>
     * @return The type.
     */
    com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType getType();

    /**
     * <code>required .Polarx.Resultset.ColumnMetaData.OriginalType original_type = 2;</code>
     * @return Whether the originalType field is set.
     */
    boolean hasOriginalType();
    /**
     * <code>required .Polarx.Resultset.ColumnMetaData.OriginalType original_type = 2;</code>
     * @return The originalType.
     */
    com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType getOriginalType();

    /**
     * <code>optional bytes name = 3;</code>
     * @return Whether the name field is set.
     */
    boolean hasName();
    /**
     * <code>optional bytes name = 3;</code>
     * @return The name.
     */
    com.google.protobuf.ByteString getName();

    /**
     * <code>optional bytes original_name = 4;</code>
     * @return Whether the originalName field is set.
     */
    boolean hasOriginalName();
    /**
     * <code>optional bytes original_name = 4;</code>
     * @return The originalName.
     */
    com.google.protobuf.ByteString getOriginalName();

    /**
     * <code>optional bytes table = 5;</code>
     * @return Whether the table field is set.
     */
    boolean hasTable();
    /**
     * <code>optional bytes table = 5;</code>
     * @return The table.
     */
    com.google.protobuf.ByteString getTable();

    /**
     * <code>optional bytes original_table = 6;</code>
     * @return Whether the originalTable field is set.
     */
    boolean hasOriginalTable();
    /**
     * <code>optional bytes original_table = 6;</code>
     * @return The originalTable.
     */
    com.google.protobuf.ByteString getOriginalTable();

    /**
     * <code>optional bytes schema = 7;</code>
     * @return Whether the schema field is set.
     */
    boolean hasSchema();
    /**
     * <code>optional bytes schema = 7;</code>
     * @return The schema.
     */
    com.google.protobuf.ByteString getSchema();

    /**
     * <code>optional bytes catalog = 8;</code>
     * @return Whether the catalog field is set.
     */
    boolean hasCatalog();
    /**
     * <code>optional bytes catalog = 8;</code>
     * @return The catalog.
     */
    com.google.protobuf.ByteString getCatalog();

    /**
     * <code>optional uint64 collation = 9;</code>
     * @return Whether the collation field is set.
     */
    boolean hasCollation();
    /**
     * <code>optional uint64 collation = 9;</code>
     * @return The collation.
     */
    long getCollation();

    /**
     * <code>optional uint32 fractional_digits = 10;</code>
     * @return Whether the fractionalDigits field is set.
     */
    boolean hasFractionalDigits();
    /**
     * <code>optional uint32 fractional_digits = 10;</code>
     * @return The fractionalDigits.
     */
    int getFractionalDigits();

    /**
     * <code>optional uint32 length = 11;</code>
     * @return Whether the length field is set.
     */
    boolean hasLength();
    /**
     * <code>optional uint32 length = 11;</code>
     * @return The length.
     */
    int getLength();

    /**
     * <code>optional uint32 flags = 12;</code>
     * @return Whether the flags field is set.
     */
    boolean hasFlags();
    /**
     * <code>optional uint32 flags = 12;</code>
     * @return The flags.
     */
    int getFlags();

    /**
     * <code>optional uint32 content_type = 13;</code>
     * @return Whether the contentType field is set.
     */
    boolean hasContentType();
    /**
     * <code>optional uint32 content_type = 13;</code>
     * @return The contentType.
     */
    int getContentType();
  }

    /**
     * <pre>
     * meta data of a Column
     * .. note:: the encoding used for the different ``bytes`` fields in the meta data is externally
     *   controlled.
     *   .. seealso:: https://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
     * .. note::
     *   The server may not set the ``original_{table|name}`` fields if they are equal to the plain
     *   ``{table|name}`` field.
     *   A client has to reconstruct it like::
     *     if .original_name is empty and .name is not empty:
     *       .original_name = .name
     *     if .original_table is empty and .table is not empty:
     *       .original_table = .table
     * .. note::
     *   ``compact metadata format`` can be requested by the client. In that case only ``.type`` is set and
     *   all other fields are empty.
     * :param type:
     *   .. table:: Expected Datatype of Polarx.Resultset.Row per SQL Type for non NULL values
     *     ================= ============ ======= ========== ====== ========
     *     SQL Type          .type        .length .frac_dig  .flags .charset
     *     ================= ============ ======= ========== ====== ========
     *     TINY              SINT         x
     *     TINY UNSIGNED     UINT         x                  x
     *     SHORT             SINT         x
     *     SHORT UNSIGNED    UINT         x                  x
     *     INT24             SINT         x
     *     INT24 UNSIGNED    UINT         x                  x
     *     INT               SINT         x
     *     INT UNSIGNED      UINT         x                  x
     *     LONGLONG          SINT         x
     *     LONGLONG UNSIGNED UINT         x                  x
     *     DOUBLE            DOUBLE       x       x          x
     *     FLOAT             FLOAT        x       x          x
     *     DECIMAL           DECIMAL      x       x          x
     *     VARCHAR,CHAR,...  BYTES        x                  x      x
     *     GEOMETRY          BYTES
     *     TIME              TIME         x
     *     DATE              DATETIME     x
     *     DATETIME          DATETIME     x
     *     YEAR              UINT         x                  x
     *     TIMESTAMP         DATETIME     x
     *     SET               SET                                    x
     *     ENUM              ENUM                                   x
     *     NULL              BYTES
     *     BIT               BIT          x
     *     ================= ============ ======= ========== ====== ========
     *   .. note:: the SQL "NULL" value is sent as an empty field value in :protobuf:msg:`Polarx.Resultset::Row`
     *   .. seealso:: protobuf encoding of primitive datatypes are decribed in https://developers.google.com/protocol-buffers/docs/encoding
     *   SINT
     *     ``.length``
     *       maximum number of displayable decimal digits (including minus sign) of the type
     *       .. note::
     *         valid range is 0-255, but usually you'll see 1-20
     *       =============== ==
     *       SQL Type        max digits per type
     *       =============== ==
     *       TINY SIGNED      4
     *       SHORT SIGNED     6
     *       INT24 SIGNED     8
     *       INT SIGNED      11
     *       LONGLONG SIGNED 20
     *       =============== ==
     *       .. seealso:: definition of ``M`` in https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
     *     ``value``
     *       variable length encoded signed 64 integer
     *   UINT
     *     ``.flags &amp; 1`` (zerofill)
     *       the client has to left pad with 0's up to .length
     *     ``.length``
     *       maximum number of displayable decimal digits of the type
     *       .. note::
     *         valid range is 0-255, but usually you'll see 1-20
     *       ================= ==
     *       SQL Type          max digits per type
     *       ================= ==
     *       TINY UNSIGNED      3
     *       SHORT UNSIGNED     5
     *       INT24 UNSIGNED     8
     *       INT UNSIGNED      10
     *       LONGLONG UNSIGNED 20
     *       ================= ==
     *       .. seealso:: definition of ``M`` in https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
     *     ``value``
     *       variable length encoded unsigned 64 integer
     *   BIT
     *     ``.length``
     *       maximum number of displayable binary digits
     *       .. note:: valid range for M of the ``BIT`` type is 1 - 64
     *       .. seealso:: https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
     *     ``value``
     *       variable length encoded unsigned 64 integer
     *   DOUBLE
     *     ``.length``
     *       maximum number of displayable decimal digits (including the decimal point and ``.fractional_digits``)
     *     ``.fractional_digits``
     *       maximum number of displayable decimal digits following the decimal point
     *     ``value``
     *       encoded as Protobuf's 'double'
     *   FLOAT
     *     ``.length``
     *       maximum number of displayable decimal digits (including the decimal point and ``.fractional_digits``)
     *     ``.fractional_digits``
     *       maximum number of displayable decimal digits following the decimal point
     *     ``value``
     *       encoded as Protobuf's 'float'
     *   BYTES, ENUM
     *     BYTES is used for all opaque byte strings that may have a charset
     *       * TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
     *       * TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
     *       * VARCHAR, VARBINARY
     *       * CHAR, BINARY
     *       * ENUM
     *     ``.length``
     *       the maximum length of characters of the underlying type
     *     ``.flags &amp; 1`` (rightpad)
     *       if the length of the field is less than ``.length``, the receiver is
     *       supposed to add padding characters to the right end of the string.
     *       If the ``.charset`` is "binary", the padding character is ``0x00``,
     *       otherwise it is a space character as defined by that character set.
     *       ============= ======= ======== =======
     *       SQL Type      .length .charset .flags
     *       ============= ======= ======== =======
     *       TINYBLOB      256     binary
     *       BLOB          65535   binary
     *       VARCHAR(32)   32      utf8
     *       VARBINARY(32) 32      utf8_bin
     *       BINARY(32)    32      binary   rightpad
     *       CHAR(32)      32      utf8     rightpad
     *       ============= ======= ======== =======
     *     ``value``
     *       sequence of bytes with added one extra '&#92;0' byte at the end. To obtain the
     *       original string, the extra '&#92;0' should be removed.
     *       .. note:: the length of the string can be acquired with protobuf's field length() method
     *         length of sequence-of-bytes = length-of-field - 1
     *       .. note:: the extra byte allows to distinguish between a NULL and empty byte sequence
     *   TIME
     *     A time value.
     *     ``value``
     *       the following bytes sequence:
     *         ``| negate [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]``
     *       * negate - one byte, should be one of: 0x00 for "+", 0x01 for "-"
     *       * hour - optional variable length encoded unsigned64 value for the hour
     *       * minutes - optional variable length encoded unsigned64 value for the minutes
     *       * seconds - optional variable length encoded unsigned64 value for the seconds
     *       * useconds - optional variable length encoded unsigned64 value for the microseconds
     *       .. seealso:: protobuf encoding in https://developers.google.com/protocol-buffers/docs/encoding
     *       .. note:: hour, minutes, seconds, useconds are optional if all the values to the right are 0
     *       Example: 0x00 -&gt; +00:00:00.000000
     *   DATETIME
     *     A date or date and time value.
     *     ``value``
     *       a sequence of variants, arranged as follows:
     *         ``| year | month | day | [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]``
     *       * year - variable length encoded unsigned64 value for the year
     *       * month - variable length encoded unsigned64 value for the month
     *       * day - variable length encoded unsigned64 value for the day
     *       * hour - optional variable length encoded unsigned64 value for the hour
     *       * minutes - optional variable length encoded unsigned64 value for the minutes
     *       * seconds - optional variable length encoded unsigned64 value for the seconds
     *       * useconds - optional variable length encoded unsigned64 value for the microseconds
     *       .. note:: hour, minutes, seconds, useconds are optional if all the values to the right are 0
     *     ``.flags &amp; 1`` (timestamp)
     *       ============= =======
     *       SQL Type      .flags
     *       ============= =======
     *       DATETIME
     *       TIMESTAMP     1
     *   DECIMAL
     *     An arbitrary length number. The number is encoded as a single byte
     *     indicating the position of the decimal point followed by the Packed BCD
     *     encoded number. Packed BCD is used to simplify conversion to and
     *     from strings and other native arbitrary precision math datatypes.
     *     .. seealso:: packed BCD in https://en.wikipedia.org/wiki/Binary-coded_decimal
     *     ``.length``
     *       maximum number of displayable decimal digits (*excluding* the decimal point and sign, but including ``.fractional_digits``)
     *       .. note:: should be in the range of 1 - 65
     *     ``.fractional_digits``
     *       is the decimal digits to display out of length
     *       .. note:: should be in the range of 0 - 30
     *     ``value``
     *       the following bytes sequence:
     *         ``| scale | BCD | sign | [0x0] |``
     *       * scale - 8bit scale value (number of decimal digit after the '.')
     *       * BCD - BCD encoded digits (4 bits for each digit)
     *       * sign - sign encoded on 4 bits (0xc = "+", 0xd = "-")
     *       * 0x0 - last 4bits if length(digits) % 2 == 0
     *       Example: x04 0x12 0x34 0x01 0xd0 -&gt; -12.3401
     *   SET
     *     A list of strings representing a SET of values.
     *     ``value``
     *       A sequence of 0 or more of protobuf's bytes (length prepended octets) or one of
     *       the special sequences with a predefined meaning listed below.
     *       Example (length of the bytes array shown in brackets):
     *         * ``[0]`` - the NULL value
     *         * ``[1] 0x00`` - a set containing a blank string ''
     *         * ``[1] 0x01`` - this would be an invalid value, but is to be treated as the empty set
     *         * ``[2] 0x01 0x00`` - a set with a single item, which is the '&#92;0' character
     *         * ``[8] 0x03 F O O 0x03 B A R`` - a set with 2 items: FOO,BAR
     * :param name: name of the column
     * :param original_name: name of the column before an alias was applied
     * :param table: name of the table the column orginates from
     * :param original_table: name of the table the column orginates from before an alias was applied
     * :param schema: schema the column originates from
     * :param catalog:
     *   catalog the schema originates from
     *   .. note::
     *     as there is current no support for catalogs in MySQL, don't expect this field to be set.
     *     In the MySQL C/S protocol the field had the value ``def`` all the time.
     * :param fractional_digits: displayed factional decimal digits for floating point and fixed point numbers
     * :param length: maximum count of displayable characters of .type
     * :param flags:
     *   ``.type`` specific flags
     *   ======= ====== ===========
     *   type    value  description
     *   ======= ====== ===========
     *   UINT    0x0001 zerofill
     *   DOUBLE  0x0001 unsigned
     *   FLOAT   0x0001 unsigned
     *   DECIMAL 0x0001 unsigned
     *   BYTES   0x0001 rightpad
     *   ======= ====== ===========
     *   ====== ================
     *   value  description
     *   ====== ================
     *   0x0010 NOT_NULL
     *   0x0020 PRIMARY_KEY
     *   0x0040 UNIQUE_KEY
     *   0x0080 MULTIPLE_KEY
     *   0x0100 AUTO_INCREMENT
     *   ====== ================
     *   default: 0
     * :param content_type:
     *   a hint about the higher-level encoding of a BYTES field
     *   ====== ====== ===========
     *   type   value  description
     *   ====== ====== ===========
     *   BYTES  0x0001 GEOMETRY (WKB encoding)
     *   BYTES  0x0002 JSON (text encoding)
     *   BYTES  0x0003 XML (text encoding)
     *   ====== ====== ===========
     *   .. note::
     *     this list isn't comprehensive. As guideline: the field's value is expected
     *     to pass a validator check on client and server if this field is set.
     *     If the server adds more internal datatypes that rely on BLOB storage
     *     like image manipulation, seeking into complex types in BLOBs, ... more
     *     types will be added.
     * </pre>
     *
     * Protobuf type {@code Polarx.Resultset.ColumnMetaData}
     */
    public  static final class ColumnMetaData extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:Polarx.Resultset.ColumnMetaData)
        ColumnMetaDataOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use ColumnMetaData.newBuilder() to construct.
        private ColumnMetaData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private ColumnMetaData() {
            type_ = 1;
            originalType_ = 0;
            name_ = com.google.protobuf.ByteString.EMPTY;
            originalName_ = com.google.protobuf.ByteString.EMPTY;
            table_ = com.google.protobuf.ByteString.EMPTY;
            originalTable_ = com.google.protobuf.ByteString.EMPTY;
            schema_ = com.google.protobuf.ByteString.EMPTY;
            catalog_ = com.google.protobuf.ByteString.EMPTY;
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
            return new ColumnMetaData();
        }

        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
            return this.unknownFields;
        }

        private ColumnMetaData(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            this();
            if (extensionRegistry == null) {
                throw new java.lang.NullPointerException();
            }
            int mutable_bitField0_ = 0;
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder();
            try {
                boolean done = false;
                while (!done) {
                    int tag = input.readTag();
                    switch (tag) {
                    case 0:
                        done = true;
                        break;
                    case 8: {
                        int rawValue = input.readEnum();
                        @SuppressWarnings("deprecation")
                        com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType value = com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType.valueOf(rawValue);
                        if (value == null) {
                            unknownFields.mergeVarintField(1, rawValue);
                        } else {
                            bitField0_ |= 0x00000001;
                            type_ = rawValue;
                        }
                        break;
                    }
                    case 16: {
                        int rawValue = input.readEnum();
                        @SuppressWarnings("deprecation")
                        com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType value = com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType.valueOf(rawValue);
                        if (value == null) {
                            unknownFields.mergeVarintField(2, rawValue);
                        } else {
                            bitField0_ |= 0x00000002;
                            originalType_ = rawValue;
                        }
                        break;
                    }
                    case 26: {
                        bitField0_ |= 0x00000004;
                        name_ = input.readBytes();
                        break;
                    }
                    case 34: {
                        bitField0_ |= 0x00000008;
                        originalName_ = input.readBytes();
                        break;
                    }
                    case 42: {
                        bitField0_ |= 0x00000010;
                        table_ = input.readBytes();
                        break;
                    }
                    case 50: {
                        bitField0_ |= 0x00000020;
                        originalTable_ = input.readBytes();
                        break;
                    }
                    case 58: {
                        bitField0_ |= 0x00000040;
                        schema_ = input.readBytes();
                        break;
                    }
                    case 66: {
                        bitField0_ |= 0x00000080;
                        catalog_ = input.readBytes();
                        break;
                    }
                    case 72: {
                        bitField0_ |= 0x00000100;
                        collation_ = input.readUInt64();
                        break;
                    }
                    case 80: {
                        bitField0_ |= 0x00000200;
                        fractionalDigits_ = input.readUInt32();
                        break;
                    }
                    case 88: {
                        bitField0_ |= 0x00000400;
                        length_ = input.readUInt32();
                        break;
                    }
                    case 96: {
                        bitField0_ |= 0x00000800;
                        flags_ = input.readUInt32();
                        break;
                    }
                    case 104: {
                        bitField0_ |= 0x00001000;
                        contentType_ = input.readUInt32();
                        break;
                    }
                    default: {
                        if (!parseUnknownField(
                            input, unknownFields, extensionRegistry, tag)) {
                            done = true;
                        }
                        break;
                    }
                    }
                }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw e.setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
                throw new com.google.protobuf.InvalidProtocolBufferException(
                    e).setUnfinishedMessage(this);
            } finally {
                this.unknownFields = unknownFields.build();
                makeExtensionsImmutable();
            }
        }

        public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
            return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_ColumnMetaData_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
            return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_ColumnMetaData_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.class, com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.Builder.class);
        }

        /**
         * Protobuf enum {@code Polarx.Resultset.ColumnMetaData.FieldType}
         */
        public enum FieldType
            implements com.google.protobuf.ProtocolMessageEnum {
            /**
             * <code>SINT = 1;</code>
             */
            SINT(1),
            /**
             * <code>UINT = 2;</code>
             */
            UINT(2),
            /**
             * <code>DOUBLE = 5;</code>
             */
            DOUBLE(5),
            /**
             * <code>FLOAT = 6;</code>
             */
            FLOAT(6),
            /**
             * <code>BYTES = 7;</code>
             */
            BYTES(7),
            /**
             * <code>TIME = 10;</code>
             */
            TIME(10),
            /**
             * <code>DATETIME = 12;</code>
             */
            DATETIME(12),
            /**
             * <code>SET = 15;</code>
             */
            SET(15),
            /**
             * <code>ENUM = 16;</code>
             */
            ENUM(16),
            /**
             * <code>BIT = 17;</code>
             */
            BIT(17),
            /**
             * <code>DECIMAL = 18;</code>
             */
            DECIMAL(18),
            ;

            /**
             * <code>SINT = 1;</code>
             */
            public static final int SINT_VALUE = 1;
            /**
             * <code>UINT = 2;</code>
             */
            public static final int UINT_VALUE = 2;
            /**
             * <code>DOUBLE = 5;</code>
             */
            public static final int DOUBLE_VALUE = 5;
            /**
             * <code>FLOAT = 6;</code>
             */
            public static final int FLOAT_VALUE = 6;
            /**
             * <code>BYTES = 7;</code>
             */
            public static final int BYTES_VALUE = 7;
            /**
             * <code>TIME = 10;</code>
             */
            public static final int TIME_VALUE = 10;
            /**
             * <code>DATETIME = 12;</code>
             */
            public static final int DATETIME_VALUE = 12;
            /**
             * <code>SET = 15;</code>
             */
            public static final int SET_VALUE = 15;
            /**
             * <code>ENUM = 16;</code>
             */
            public static final int ENUM_VALUE = 16;
            /**
             * <code>BIT = 17;</code>
             */
            public static final int BIT_VALUE = 17;
            /**
             * <code>DECIMAL = 18;</code>
             */
            public static final int DECIMAL_VALUE = 18;

            public final int getNumber() {
                return value;
            }

            /**
             * @param value The numeric wire value of the corresponding enum entry.
             * @return The enum associated with the given numeric wire value.
             * @deprecated Use {@link #forNumber(int)} instead.
             */
            @java.lang.Deprecated
            public static FieldType valueOf(int value) {
                return forNumber(value);
            }

            /**
             * @param value The numeric wire value of the corresponding enum entry.
             * @return The enum associated with the given numeric wire value.
             */
            public static FieldType forNumber(int value) {
                switch (value) {
                case 1: return SINT;
                case 2: return UINT;
                case 5: return DOUBLE;
                case 6: return FLOAT;
                case 7: return BYTES;
                case 10: return TIME;
                case 12: return DATETIME;
                case 15: return SET;
                case 16: return ENUM;
                case 17: return BIT;
                case 18: return DECIMAL;
                default: return null;
                }
            }

            public static com.google.protobuf.Internal.EnumLiteMap<FieldType>
            internalGetValueMap() {
                return internalValueMap;
            }

            private static final com.google.protobuf.Internal.EnumLiteMap<
                FieldType> internalValueMap =
                new com.google.protobuf.Internal.EnumLiteMap<FieldType>() {
                    public FieldType findValueByNumber(int number) {
                        return FieldType.forNumber(number);
                    }
                };

            public final com.google.protobuf.Descriptors.EnumValueDescriptor
            getValueDescriptor() {
                return getDescriptor().getValues().get(ordinal());
            }

            public final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptorForType() {
                return getDescriptor();
            }

            public static final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptor() {
                return com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.getDescriptor().getEnumTypes().get(0);
            }

            private static final FieldType[] VALUES = values();

            public static FieldType valueOf(
                com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
                if (desc.getType() != getDescriptor()) {
                    throw new java.lang.IllegalArgumentException(
                        "EnumValueDescriptor is not for this type.");
                }
                return VALUES[desc.getIndex()];
            }

            private final int value;

            FieldType(int value) {
                this.value = value;
            }

            // @@protoc_insertion_point(enum_scope:Polarx.Resultset.ColumnMetaData.FieldType)
        }

        /**
         * Protobuf enum {@code Polarx.Resultset.ColumnMetaData.OriginalType}
         */
        public enum OriginalType
            implements com.google.protobuf.ProtocolMessageEnum {
            /**
             * <code>MYSQL_TYPE_DECIMAL = 0;</code>
             */
            MYSQL_TYPE_DECIMAL(0),
            /**
             * <code>MYSQL_TYPE_TINY = 1;</code>
             */
            MYSQL_TYPE_TINY(1),
            /**
             * <code>MYSQL_TYPE_SHORT = 2;</code>
             */
            MYSQL_TYPE_SHORT(2),
            /**
             * <code>MYSQL_TYPE_LONG = 3;</code>
             */
            MYSQL_TYPE_LONG(3),
            /**
             * <code>MYSQL_TYPE_FLOAT = 4;</code>
             */
            MYSQL_TYPE_FLOAT(4),
            /**
             * <code>MYSQL_TYPE_DOUBLE = 5;</code>
             */
            MYSQL_TYPE_DOUBLE(5),
            /**
             * <code>MYSQL_TYPE_NULL = 6;</code>
             */
            MYSQL_TYPE_NULL(6),
            /**
             * <code>MYSQL_TYPE_TIMESTAMP = 7;</code>
             */
            MYSQL_TYPE_TIMESTAMP(7),
            /**
             * <code>MYSQL_TYPE_LONGLONG = 8;</code>
             */
            MYSQL_TYPE_LONGLONG(8),
            /**
             * <code>MYSQL_TYPE_INT24 = 9;</code>
             */
            MYSQL_TYPE_INT24(9),
            /**
             * <code>MYSQL_TYPE_DATE = 10;</code>
             */
            MYSQL_TYPE_DATE(10),
            /**
             * <code>MYSQL_TYPE_TIME = 11;</code>
             */
            MYSQL_TYPE_TIME(11),
            /**
             * <code>MYSQL_TYPE_DATETIME = 12;</code>
             */
            MYSQL_TYPE_DATETIME(12),
            /**
             * <code>MYSQL_TYPE_YEAR = 13;</code>
             */
            MYSQL_TYPE_YEAR(13),
            /**
             * <code>MYSQL_TYPE_NEWDATE = 14;</code>
             */
            MYSQL_TYPE_NEWDATE(14),
            /**
             * <code>MYSQL_TYPE_VARCHAR = 15;</code>
             */
            MYSQL_TYPE_VARCHAR(15),
            /**
             * <code>MYSQL_TYPE_BIT = 16;</code>
             */
            MYSQL_TYPE_BIT(16),
            /**
             * <code>MYSQL_TYPE_TIMESTAMP2 = 17;</code>
             */
            MYSQL_TYPE_TIMESTAMP2(17),
            /**
             * <code>MYSQL_TYPE_DATETIME2 = 18;</code>
             */
            MYSQL_TYPE_DATETIME2(18),
            /**
             * <code>MYSQL_TYPE_TIME2 = 19;</code>
             */
            MYSQL_TYPE_TIME2(19),
            /**
             * <code>MYSQL_TYPE_JSON = 245;</code>
             */
            MYSQL_TYPE_JSON(245),
            /**
             * <code>MYSQL_TYPE_NEWDECIMAL = 246;</code>
             */
            MYSQL_TYPE_NEWDECIMAL(246),
            /**
             * <code>MYSQL_TYPE_ENUM = 247;</code>
             */
            MYSQL_TYPE_ENUM(247),
            /**
             * <code>MYSQL_TYPE_SET = 248;</code>
             */
            MYSQL_TYPE_SET(248),
            /**
             * <code>MYSQL_TYPE_TINY_BLOB = 249;</code>
             */
            MYSQL_TYPE_TINY_BLOB(249),
            /**
             * <code>MYSQL_TYPE_MEDIUM_BLOB = 250;</code>
             */
            MYSQL_TYPE_MEDIUM_BLOB(250),
            /**
             * <code>MYSQL_TYPE_LONG_BLOB = 251;</code>
             */
            MYSQL_TYPE_LONG_BLOB(251),
            /**
             * <code>MYSQL_TYPE_BLOB = 252;</code>
             */
            MYSQL_TYPE_BLOB(252),
            /**
             * <code>MYSQL_TYPE_VAR_STRING = 253;</code>
             */
            MYSQL_TYPE_VAR_STRING(253),
            /**
             * <code>MYSQL_TYPE_STRING = 254;</code>
             */
            MYSQL_TYPE_STRING(254),
            /**
             * <code>MYSQL_TYPE_GEOMETRY = 255;</code>
             */
            MYSQL_TYPE_GEOMETRY(255),
            ;

            /**
             * <code>MYSQL_TYPE_DECIMAL = 0;</code>
             */
            public static final int MYSQL_TYPE_DECIMAL_VALUE = 0;
            /**
             * <code>MYSQL_TYPE_TINY = 1;</code>
             */
            public static final int MYSQL_TYPE_TINY_VALUE = 1;
            /**
             * <code>MYSQL_TYPE_SHORT = 2;</code>
             */
            public static final int MYSQL_TYPE_SHORT_VALUE = 2;
            /**
             * <code>MYSQL_TYPE_LONG = 3;</code>
             */
            public static final int MYSQL_TYPE_LONG_VALUE = 3;
            /**
             * <code>MYSQL_TYPE_FLOAT = 4;</code>
             */
            public static final int MYSQL_TYPE_FLOAT_VALUE = 4;
            /**
             * <code>MYSQL_TYPE_DOUBLE = 5;</code>
             */
            public static final int MYSQL_TYPE_DOUBLE_VALUE = 5;
            /**
             * <code>MYSQL_TYPE_NULL = 6;</code>
             */
            public static final int MYSQL_TYPE_NULL_VALUE = 6;
            /**
             * <code>MYSQL_TYPE_TIMESTAMP = 7;</code>
             */
            public static final int MYSQL_TYPE_TIMESTAMP_VALUE = 7;
            /**
             * <code>MYSQL_TYPE_LONGLONG = 8;</code>
             */
            public static final int MYSQL_TYPE_LONGLONG_VALUE = 8;
            /**
             * <code>MYSQL_TYPE_INT24 = 9;</code>
             */
            public static final int MYSQL_TYPE_INT24_VALUE = 9;
            /**
             * <code>MYSQL_TYPE_DATE = 10;</code>
             */
            public static final int MYSQL_TYPE_DATE_VALUE = 10;
            /**
             * <code>MYSQL_TYPE_TIME = 11;</code>
             */
            public static final int MYSQL_TYPE_TIME_VALUE = 11;
            /**
             * <code>MYSQL_TYPE_DATETIME = 12;</code>
             */
            public static final int MYSQL_TYPE_DATETIME_VALUE = 12;
            /**
             * <code>MYSQL_TYPE_YEAR = 13;</code>
             */
            public static final int MYSQL_TYPE_YEAR_VALUE = 13;
            /**
             * <code>MYSQL_TYPE_NEWDATE = 14;</code>
             */
            public static final int MYSQL_TYPE_NEWDATE_VALUE = 14;
            /**
             * <code>MYSQL_TYPE_VARCHAR = 15;</code>
             */
            public static final int MYSQL_TYPE_VARCHAR_VALUE = 15;
            /**
             * <code>MYSQL_TYPE_BIT = 16;</code>
             */
            public static final int MYSQL_TYPE_BIT_VALUE = 16;
            /**
             * <code>MYSQL_TYPE_TIMESTAMP2 = 17;</code>
             */
            public static final int MYSQL_TYPE_TIMESTAMP2_VALUE = 17;
            /**
             * <code>MYSQL_TYPE_DATETIME2 = 18;</code>
             */
            public static final int MYSQL_TYPE_DATETIME2_VALUE = 18;
            /**
             * <code>MYSQL_TYPE_TIME2 = 19;</code>
             */
            public static final int MYSQL_TYPE_TIME2_VALUE = 19;
            /**
             * <code>MYSQL_TYPE_JSON = 245;</code>
             */
            public static final int MYSQL_TYPE_JSON_VALUE = 245;
            /**
             * <code>MYSQL_TYPE_NEWDECIMAL = 246;</code>
             */
            public static final int MYSQL_TYPE_NEWDECIMAL_VALUE = 246;
            /**
             * <code>MYSQL_TYPE_ENUM = 247;</code>
             */
            public static final int MYSQL_TYPE_ENUM_VALUE = 247;
            /**
             * <code>MYSQL_TYPE_SET = 248;</code>
             */
            public static final int MYSQL_TYPE_SET_VALUE = 248;
            /**
             * <code>MYSQL_TYPE_TINY_BLOB = 249;</code>
             */
            public static final int MYSQL_TYPE_TINY_BLOB_VALUE = 249;
            /**
             * <code>MYSQL_TYPE_MEDIUM_BLOB = 250;</code>
             */
            public static final int MYSQL_TYPE_MEDIUM_BLOB_VALUE = 250;
            /**
             * <code>MYSQL_TYPE_LONG_BLOB = 251;</code>
             */
            public static final int MYSQL_TYPE_LONG_BLOB_VALUE = 251;
            /**
             * <code>MYSQL_TYPE_BLOB = 252;</code>
             */
            public static final int MYSQL_TYPE_BLOB_VALUE = 252;
            /**
             * <code>MYSQL_TYPE_VAR_STRING = 253;</code>
             */
            public static final int MYSQL_TYPE_VAR_STRING_VALUE = 253;
            /**
             * <code>MYSQL_TYPE_STRING = 254;</code>
             */
            public static final int MYSQL_TYPE_STRING_VALUE = 254;
            /**
             * <code>MYSQL_TYPE_GEOMETRY = 255;</code>
             */
            public static final int MYSQL_TYPE_GEOMETRY_VALUE = 255;

            public final int getNumber() {
                return value;
            }

            /**
             * @param value The numeric wire value of the corresponding enum entry.
             * @return The enum associated with the given numeric wire value.
             * @deprecated Use {@link #forNumber(int)} instead.
             */
            @java.lang.Deprecated
            public static OriginalType valueOf(int value) {
                return forNumber(value);
            }

            /**
             * @param value The numeric wire value of the corresponding enum entry.
             * @return The enum associated with the given numeric wire value.
             */
            public static OriginalType forNumber(int value) {
                switch (value) {
                case 0: return MYSQL_TYPE_DECIMAL;
                case 1: return MYSQL_TYPE_TINY;
                case 2: return MYSQL_TYPE_SHORT;
                case 3: return MYSQL_TYPE_LONG;
                case 4: return MYSQL_TYPE_FLOAT;
                case 5: return MYSQL_TYPE_DOUBLE;
                case 6: return MYSQL_TYPE_NULL;
                case 7: return MYSQL_TYPE_TIMESTAMP;
                case 8: return MYSQL_TYPE_LONGLONG;
                case 9: return MYSQL_TYPE_INT24;
                case 10: return MYSQL_TYPE_DATE;
                case 11: return MYSQL_TYPE_TIME;
                case 12: return MYSQL_TYPE_DATETIME;
                case 13: return MYSQL_TYPE_YEAR;
                case 14: return MYSQL_TYPE_NEWDATE;
                case 15: return MYSQL_TYPE_VARCHAR;
                case 16: return MYSQL_TYPE_BIT;
                case 17: return MYSQL_TYPE_TIMESTAMP2;
                case 18: return MYSQL_TYPE_DATETIME2;
                case 19: return MYSQL_TYPE_TIME2;
                case 245: return MYSQL_TYPE_JSON;
                case 246: return MYSQL_TYPE_NEWDECIMAL;
                case 247: return MYSQL_TYPE_ENUM;
                case 248: return MYSQL_TYPE_SET;
                case 249: return MYSQL_TYPE_TINY_BLOB;
                case 250: return MYSQL_TYPE_MEDIUM_BLOB;
                case 251: return MYSQL_TYPE_LONG_BLOB;
                case 252: return MYSQL_TYPE_BLOB;
                case 253: return MYSQL_TYPE_VAR_STRING;
                case 254: return MYSQL_TYPE_STRING;
                case 255: return MYSQL_TYPE_GEOMETRY;
                default: return null;
                }
            }

            public static com.google.protobuf.Internal.EnumLiteMap<OriginalType>
            internalGetValueMap() {
                return internalValueMap;
            }

            private static final com.google.protobuf.Internal.EnumLiteMap<
                OriginalType> internalValueMap =
                new com.google.protobuf.Internal.EnumLiteMap<OriginalType>() {
                    public OriginalType findValueByNumber(int number) {
                        return OriginalType.forNumber(number);
                    }
                };

            public final com.google.protobuf.Descriptors.EnumValueDescriptor
            getValueDescriptor() {
                return getDescriptor().getValues().get(ordinal());
            }

            public final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptorForType() {
                return getDescriptor();
            }

            public static final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptor() {
                return com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.getDescriptor().getEnumTypes().get(1);
            }

            private static final OriginalType[] VALUES = values();

            public static OriginalType valueOf(
                com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
                if (desc.getType() != getDescriptor()) {
                    throw new java.lang.IllegalArgumentException(
                        "EnumValueDescriptor is not for this type.");
                }
                return VALUES[desc.getIndex()];
            }

            private final int value;

            OriginalType(int value) {
                this.value = value;
            }

            // @@protoc_insertion_point(enum_scope:Polarx.Resultset.ColumnMetaData.OriginalType)
        }

        private int bitField0_;
        public static final int TYPE_FIELD_NUMBER = 1;
        private int type_;

        /**
         * <pre>
         * datatype of the field in a row
         * </pre>
         *
         * <code>required .Polarx.Resultset.ColumnMetaData.FieldType type = 1;</code>
         * @return Whether the type field is set.
         */
        public boolean hasType() {
            return ((bitField0_ & 0x00000001) != 0);
        }

        /**
         * <pre>
         * datatype of the field in a row
         * </pre>
         *
         * <code>required .Polarx.Resultset.ColumnMetaData.FieldType type = 1;</code>
         * @return The type.
         */
        public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType getType() {
            @SuppressWarnings("deprecation")
            com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType result = com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType.valueOf(type_);
            return result == null ? com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType.SINT : result;
        }

        public static final int ORIGINAL_TYPE_FIELD_NUMBER = 2;
        private int originalType_;

        /**
         * <code>required .Polarx.Resultset.ColumnMetaData.OriginalType original_type = 2;</code>
         * @return Whether the originalType field is set.
         */
        public boolean hasOriginalType() {
            return ((bitField0_ & 0x00000002) != 0);
        }

        /**
         * <code>required .Polarx.Resultset.ColumnMetaData.OriginalType original_type = 2;</code>
         * @return The originalType.
         */
        public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType getOriginalType() {
            @SuppressWarnings("deprecation")
            com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType result = com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType.valueOf(originalType_);
            return result == null ? com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType.MYSQL_TYPE_DECIMAL : result;
        }

        public static final int NAME_FIELD_NUMBER = 3;
        private com.google.protobuf.ByteString name_;

        /**
         * <code>optional bytes name = 3;</code>
         * @return Whether the name field is set.
         */
        public boolean hasName() {
            return ((bitField0_ & 0x00000004) != 0);
        }

        /**
         * <code>optional bytes name = 3;</code>
         * @return The name.
         */
        public com.google.protobuf.ByteString getName() {
            return name_;
        }

        public static final int ORIGINAL_NAME_FIELD_NUMBER = 4;
        private com.google.protobuf.ByteString originalName_;

        /**
         * <code>optional bytes original_name = 4;</code>
         * @return Whether the originalName field is set.
         */
        public boolean hasOriginalName() {
            return ((bitField0_ & 0x00000008) != 0);
        }

        /**
         * <code>optional bytes original_name = 4;</code>
         * @return The originalName.
         */
        public com.google.protobuf.ByteString getOriginalName() {
            return originalName_;
        }

        public static final int TABLE_FIELD_NUMBER = 5;
        private com.google.protobuf.ByteString table_;

        /**
         * <code>optional bytes table = 5;</code>
         * @return Whether the table field is set.
         */
        public boolean hasTable() {
            return ((bitField0_ & 0x00000010) != 0);
        }

        /**
         * <code>optional bytes table = 5;</code>
         * @return The table.
         */
        public com.google.protobuf.ByteString getTable() {
            return table_;
        }

        public static final int ORIGINAL_TABLE_FIELD_NUMBER = 6;
        private com.google.protobuf.ByteString originalTable_;

        /**
         * <code>optional bytes original_table = 6;</code>
         * @return Whether the originalTable field is set.
         */
        public boolean hasOriginalTable() {
            return ((bitField0_ & 0x00000020) != 0);
        }

        /**
         * <code>optional bytes original_table = 6;</code>
         * @return The originalTable.
         */
        public com.google.protobuf.ByteString getOriginalTable() {
            return originalTable_;
        }

        public static final int SCHEMA_FIELD_NUMBER = 7;
        private com.google.protobuf.ByteString schema_;

        /**
         * <code>optional bytes schema = 7;</code>
         * @return Whether the schema field is set.
         */
        public boolean hasSchema() {
            return ((bitField0_ & 0x00000040) != 0);
        }

        /**
         * <code>optional bytes schema = 7;</code>
         * @return The schema.
         */
        public com.google.protobuf.ByteString getSchema() {
            return schema_;
        }

        public static final int CATALOG_FIELD_NUMBER = 8;
        private com.google.protobuf.ByteString catalog_;

        /**
         * <code>optional bytes catalog = 8;</code>
         * @return Whether the catalog field is set.
         */
        public boolean hasCatalog() {
            return ((bitField0_ & 0x00000080) != 0);
        }

        /**
         * <code>optional bytes catalog = 8;</code>
         * @return The catalog.
         */
        public com.google.protobuf.ByteString getCatalog() {
            return catalog_;
        }

        public static final int COLLATION_FIELD_NUMBER = 9;
        private long collation_;

        /**
         * <code>optional uint64 collation = 9;</code>
         * @return Whether the collation field is set.
         */
        public boolean hasCollation() {
            return ((bitField0_ & 0x00000100) != 0);
        }

        /**
         * <code>optional uint64 collation = 9;</code>
         * @return The collation.
         */
        public long getCollation() {
            return collation_;
        }

        public static final int FRACTIONAL_DIGITS_FIELD_NUMBER = 10;
        private int fractionalDigits_;

        /**
         * <code>optional uint32 fractional_digits = 10;</code>
         * @return Whether the fractionalDigits field is set.
         */
        public boolean hasFractionalDigits() {
            return ((bitField0_ & 0x00000200) != 0);
        }

        /**
         * <code>optional uint32 fractional_digits = 10;</code>
         * @return The fractionalDigits.
         */
        public int getFractionalDigits() {
            return fractionalDigits_;
        }

        public static final int LENGTH_FIELD_NUMBER = 11;
        private int length_;

        /**
         * <code>optional uint32 length = 11;</code>
         * @return Whether the length field is set.
         */
        public boolean hasLength() {
            return ((bitField0_ & 0x00000400) != 0);
        }

        /**
         * <code>optional uint32 length = 11;</code>
         * @return The length.
         */
        public int getLength() {
            return length_;
        }

        public static final int FLAGS_FIELD_NUMBER = 12;
        private int flags_;

        /**
         * <code>optional uint32 flags = 12;</code>
         * @return Whether the flags field is set.
         */
        public boolean hasFlags() {
            return ((bitField0_ & 0x00000800) != 0);
        }

        /**
         * <code>optional uint32 flags = 12;</code>
         * @return The flags.
         */
        public int getFlags() {
            return flags_;
        }

        public static final int CONTENT_TYPE_FIELD_NUMBER = 13;
        private int contentType_;

        /**
         * <code>optional uint32 content_type = 13;</code>
         * @return Whether the contentType field is set.
         */
        public boolean hasContentType() {
            return ((bitField0_ & 0x00001000) != 0);
        }

        /**
         * <code>optional uint32 content_type = 13;</code>
         * @return The contentType.
         */
        public int getContentType() {
            return contentType_;
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1) return true;
            if (isInitialized == 0) return false;

            if (!hasType()) {
                memoizedIsInitialized = 0;
                return false;
            }
            if (!hasOriginalType()) {
                memoizedIsInitialized = 0;
                return false;
            }
            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
            if (((bitField0_ & 0x00000001) != 0)) {
                output.writeEnum(1, type_);
            }
            if (((bitField0_ & 0x00000002) != 0)) {
                output.writeEnum(2, originalType_);
            }
            if (((bitField0_ & 0x00000004) != 0)) {
                output.writeBytes(3, name_);
            }
            if (((bitField0_ & 0x00000008) != 0)) {
                output.writeBytes(4, originalName_);
            }
            if (((bitField0_ & 0x00000010) != 0)) {
                output.writeBytes(5, table_);
            }
            if (((bitField0_ & 0x00000020) != 0)) {
                output.writeBytes(6, originalTable_);
            }
            if (((bitField0_ & 0x00000040) != 0)) {
                output.writeBytes(7, schema_);
            }
            if (((bitField0_ & 0x00000080) != 0)) {
                output.writeBytes(8, catalog_);
            }
            if (((bitField0_ & 0x00000100) != 0)) {
                output.writeUInt64(9, collation_);
            }
            if (((bitField0_ & 0x00000200) != 0)) {
                output.writeUInt32(10, fractionalDigits_);
            }
            if (((bitField0_ & 0x00000400) != 0)) {
                output.writeUInt32(11, length_);
            }
            if (((bitField0_ & 0x00000800) != 0)) {
                output.writeUInt32(12, flags_);
            }
            if (((bitField0_ & 0x00001000) != 0)) {
                output.writeUInt32(13, contentType_);
            }
            unknownFields.writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1) return size;

            size = 0;
            if (((bitField0_ & 0x00000001) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeEnumSize(1, type_);
            }
            if (((bitField0_ & 0x00000002) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeEnumSize(2, originalType_);
            }
            if (((bitField0_ & 0x00000004) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeBytesSize(3, name_);
            }
            if (((bitField0_ & 0x00000008) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeBytesSize(4, originalName_);
            }
            if (((bitField0_ & 0x00000010) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeBytesSize(5, table_);
            }
            if (((bitField0_ & 0x00000020) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeBytesSize(6, originalTable_);
            }
            if (((bitField0_ & 0x00000040) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeBytesSize(7, schema_);
            }
            if (((bitField0_ & 0x00000080) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeBytesSize(8, catalog_);
            }
            if (((bitField0_ & 0x00000100) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeUInt64Size(9, collation_);
            }
            if (((bitField0_ & 0x00000200) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeUInt32Size(10, fractionalDigits_);
            }
            if (((bitField0_ & 0x00000400) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeUInt32Size(11, length_);
            }
            if (((bitField0_ & 0x00000800) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeUInt32Size(12, flags_);
            }
            if (((bitField0_ & 0x00001000) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeUInt32Size(13, contentType_);
            }
            size += unknownFields.getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData)) {
                return super.equals(obj);
            }
            com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData other = (com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData) obj;

            if (hasType() != other.hasType()) return false;
            if (hasType()) {
                if (type_ != other.type_) return false;
            }
            if (hasOriginalType() != other.hasOriginalType()) return false;
            if (hasOriginalType()) {
                if (originalType_ != other.originalType_) return false;
            }
            if (hasName() != other.hasName()) return false;
            if (hasName()) {
                if (!getName()
                    .equals(other.getName())) return false;
            }
            if (hasOriginalName() != other.hasOriginalName()) return false;
            if (hasOriginalName()) {
                if (!getOriginalName()
                    .equals(other.getOriginalName())) return false;
            }
            if (hasTable() != other.hasTable()) return false;
            if (hasTable()) {
                if (!getTable()
                    .equals(other.getTable())) return false;
            }
            if (hasOriginalTable() != other.hasOriginalTable()) return false;
            if (hasOriginalTable()) {
                if (!getOriginalTable()
                    .equals(other.getOriginalTable())) return false;
            }
            if (hasSchema() != other.hasSchema()) return false;
            if (hasSchema()) {
                if (!getSchema()
                    .equals(other.getSchema())) return false;
            }
            if (hasCatalog() != other.hasCatalog()) return false;
            if (hasCatalog()) {
                if (!getCatalog()
                    .equals(other.getCatalog())) return false;
            }
            if (hasCollation() != other.hasCollation()) return false;
            if (hasCollation()) {
                if (getCollation()
                    != other.getCollation()) return false;
            }
            if (hasFractionalDigits() != other.hasFractionalDigits()) return false;
            if (hasFractionalDigits()) {
                if (getFractionalDigits()
                    != other.getFractionalDigits()) return false;
            }
            if (hasLength() != other.hasLength()) return false;
            if (hasLength()) {
                if (getLength()
                    != other.getLength()) return false;
            }
            if (hasFlags() != other.hasFlags()) return false;
            if (hasFlags()) {
                if (getFlags()
                    != other.getFlags()) return false;
            }
            if (hasContentType() != other.hasContentType()) return false;
            if (hasContentType()) {
                if (getContentType()
                    != other.getContentType()) return false;
            }
            return unknownFields.equals(other.unknownFields);
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasType()) {
                hash = (37 * hash) + TYPE_FIELD_NUMBER;
                hash = (53 * hash) + type_;
            }
            if (hasOriginalType()) {
                hash = (37 * hash) + ORIGINAL_TYPE_FIELD_NUMBER;
                hash = (53 * hash) + originalType_;
            }
            if (hasName()) {
                hash = (37 * hash) + NAME_FIELD_NUMBER;
                hash = (53 * hash) + getName().hashCode();
            }
            if (hasOriginalName()) {
                hash = (37 * hash) + ORIGINAL_NAME_FIELD_NUMBER;
                hash = (53 * hash) + getOriginalName().hashCode();
            }
            if (hasTable()) {
                hash = (37 * hash) + TABLE_FIELD_NUMBER;
                hash = (53 * hash) + getTable().hashCode();
            }
            if (hasOriginalTable()) {
                hash = (37 * hash) + ORIGINAL_TABLE_FIELD_NUMBER;
                hash = (53 * hash) + getOriginalTable().hashCode();
            }
            if (hasSchema()) {
                hash = (37 * hash) + SCHEMA_FIELD_NUMBER;
                hash = (53 * hash) + getSchema().hashCode();
            }
            if (hasCatalog()) {
                hash = (37 * hash) + CATALOG_FIELD_NUMBER;
                hash = (53 * hash) + getCatalog().hashCode();
            }
            if (hasCollation()) {
                hash = (37 * hash) + COLLATION_FIELD_NUMBER;
                hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                    getCollation());
            }
            if (hasFractionalDigits()) {
                hash = (37 * hash) + FRACTIONAL_DIGITS_FIELD_NUMBER;
                hash = (53 * hash) + getFractionalDigits();
            }
            if (hasLength()) {
                hash = (37 * hash) + LENGTH_FIELD_NUMBER;
                hash = (53 * hash) + getLength();
            }
            if (hasFlags()) {
                hash = (37 * hash) + FLAGS_FIELD_NUMBER;
                hash = (53 * hash) + getFlags();
            }
            if (hasContentType()) {
                hash = (37 * hash) + CONTENT_TYPE_FIELD_NUMBER;
                hash = (53 * hash) + getContentType();
            }
            hash = (29 * hash) + unknownFields.hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData parseFrom(java.io.InputStream input)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * <pre>
         * meta data of a Column
         * .. note:: the encoding used for the different ``bytes`` fields in the meta data is externally
         *   controlled.
         *   .. seealso:: https://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
         * .. note::
         *   The server may not set the ``original_{table|name}`` fields if they are equal to the plain
         *   ``{table|name}`` field.
         *   A client has to reconstruct it like::
         *     if .original_name is empty and .name is not empty:
         *       .original_name = .name
         *     if .original_table is empty and .table is not empty:
         *       .original_table = .table
         * .. note::
         *   ``compact metadata format`` can be requested by the client. In that case only ``.type`` is set and
         *   all other fields are empty.
         * :param type:
         *   .. table:: Expected Datatype of Polarx.Resultset.Row per SQL Type for non NULL values
         *     ================= ============ ======= ========== ====== ========
         *     SQL Type          .type        .length .frac_dig  .flags .charset
         *     ================= ============ ======= ========== ====== ========
         *     TINY              SINT         x
         *     TINY UNSIGNED     UINT         x                  x
         *     SHORT             SINT         x
         *     SHORT UNSIGNED    UINT         x                  x
         *     INT24             SINT         x
         *     INT24 UNSIGNED    UINT         x                  x
         *     INT               SINT         x
         *     INT UNSIGNED      UINT         x                  x
         *     LONGLONG          SINT         x
         *     LONGLONG UNSIGNED UINT         x                  x
         *     DOUBLE            DOUBLE       x       x          x
         *     FLOAT             FLOAT        x       x          x
         *     DECIMAL           DECIMAL      x       x          x
         *     VARCHAR,CHAR,...  BYTES        x                  x      x
         *     GEOMETRY          BYTES
         *     TIME              TIME         x
         *     DATE              DATETIME     x
         *     DATETIME          DATETIME     x
         *     YEAR              UINT         x                  x
         *     TIMESTAMP         DATETIME     x
         *     SET               SET                                    x
         *     ENUM              ENUM                                   x
         *     NULL              BYTES
         *     BIT               BIT          x
         *     ================= ============ ======= ========== ====== ========
         *   .. note:: the SQL "NULL" value is sent as an empty field value in :protobuf:msg:`Polarx.Resultset::Row`
         *   .. seealso:: protobuf encoding of primitive datatypes are decribed in https://developers.google.com/protocol-buffers/docs/encoding
         *   SINT
         *     ``.length``
         *       maximum number of displayable decimal digits (including minus sign) of the type
         *       .. note::
         *         valid range is 0-255, but usually you'll see 1-20
         *       =============== ==
         *       SQL Type        max digits per type
         *       =============== ==
         *       TINY SIGNED      4
         *       SHORT SIGNED     6
         *       INT24 SIGNED     8
         *       INT SIGNED      11
         *       LONGLONG SIGNED 20
         *       =============== ==
         *       .. seealso:: definition of ``M`` in https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
         *     ``value``
         *       variable length encoded signed 64 integer
         *   UINT
         *     ``.flags &amp; 1`` (zerofill)
         *       the client has to left pad with 0's up to .length
         *     ``.length``
         *       maximum number of displayable decimal digits of the type
         *       .. note::
         *         valid range is 0-255, but usually you'll see 1-20
         *       ================= ==
         *       SQL Type          max digits per type
         *       ================= ==
         *       TINY UNSIGNED      3
         *       SHORT UNSIGNED     5
         *       INT24 UNSIGNED     8
         *       INT UNSIGNED      10
         *       LONGLONG UNSIGNED 20
         *       ================= ==
         *       .. seealso:: definition of ``M`` in https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
         *     ``value``
         *       variable length encoded unsigned 64 integer
         *   BIT
         *     ``.length``
         *       maximum number of displayable binary digits
         *       .. note:: valid range for M of the ``BIT`` type is 1 - 64
         *       .. seealso:: https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
         *     ``value``
         *       variable length encoded unsigned 64 integer
         *   DOUBLE
         *     ``.length``
         *       maximum number of displayable decimal digits (including the decimal point and ``.fractional_digits``)
         *     ``.fractional_digits``
         *       maximum number of displayable decimal digits following the decimal point
         *     ``value``
         *       encoded as Protobuf's 'double'
         *   FLOAT
         *     ``.length``
         *       maximum number of displayable decimal digits (including the decimal point and ``.fractional_digits``)
         *     ``.fractional_digits``
         *       maximum number of displayable decimal digits following the decimal point
         *     ``value``
         *       encoded as Protobuf's 'float'
         *   BYTES, ENUM
         *     BYTES is used for all opaque byte strings that may have a charset
         *       * TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
         *       * TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
         *       * VARCHAR, VARBINARY
         *       * CHAR, BINARY
         *       * ENUM
         *     ``.length``
         *       the maximum length of characters of the underlying type
         *     ``.flags &amp; 1`` (rightpad)
         *       if the length of the field is less than ``.length``, the receiver is
         *       supposed to add padding characters to the right end of the string.
         *       If the ``.charset`` is "binary", the padding character is ``0x00``,
         *       otherwise it is a space character as defined by that character set.
         *       ============= ======= ======== =======
         *       SQL Type      .length .charset .flags
         *       ============= ======= ======== =======
         *       TINYBLOB      256     binary
         *       BLOB          65535   binary
         *       VARCHAR(32)   32      utf8
         *       VARBINARY(32) 32      utf8_bin
         *       BINARY(32)    32      binary   rightpad
         *       CHAR(32)      32      utf8     rightpad
         *       ============= ======= ======== =======
         *     ``value``
         *       sequence of bytes with added one extra '&#92;0' byte at the end. To obtain the
         *       original string, the extra '&#92;0' should be removed.
         *       .. note:: the length of the string can be acquired with protobuf's field length() method
         *         length of sequence-of-bytes = length-of-field - 1
         *       .. note:: the extra byte allows to distinguish between a NULL and empty byte sequence
         *   TIME
         *     A time value.
         *     ``value``
         *       the following bytes sequence:
         *         ``| negate [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]``
         *       * negate - one byte, should be one of: 0x00 for "+", 0x01 for "-"
         *       * hour - optional variable length encoded unsigned64 value for the hour
         *       * minutes - optional variable length encoded unsigned64 value for the minutes
         *       * seconds - optional variable length encoded unsigned64 value for the seconds
         *       * useconds - optional variable length encoded unsigned64 value for the microseconds
         *       .. seealso:: protobuf encoding in https://developers.google.com/protocol-buffers/docs/encoding
         *       .. note:: hour, minutes, seconds, useconds are optional if all the values to the right are 0
         *       Example: 0x00 -&gt; +00:00:00.000000
         *   DATETIME
         *     A date or date and time value.
         *     ``value``
         *       a sequence of variants, arranged as follows:
         *         ``| year | month | day | [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]``
         *       * year - variable length encoded unsigned64 value for the year
         *       * month - variable length encoded unsigned64 value for the month
         *       * day - variable length encoded unsigned64 value for the day
         *       * hour - optional variable length encoded unsigned64 value for the hour
         *       * minutes - optional variable length encoded unsigned64 value for the minutes
         *       * seconds - optional variable length encoded unsigned64 value for the seconds
         *       * useconds - optional variable length encoded unsigned64 value for the microseconds
         *       .. note:: hour, minutes, seconds, useconds are optional if all the values to the right are 0
         *     ``.flags &amp; 1`` (timestamp)
         *       ============= =======
         *       SQL Type      .flags
         *       ============= =======
         *       DATETIME
         *       TIMESTAMP     1
         *   DECIMAL
         *     An arbitrary length number. The number is encoded as a single byte
         *     indicating the position of the decimal point followed by the Packed BCD
         *     encoded number. Packed BCD is used to simplify conversion to and
         *     from strings and other native arbitrary precision math datatypes.
         *     .. seealso:: packed BCD in https://en.wikipedia.org/wiki/Binary-coded_decimal
         *     ``.length``
         *       maximum number of displayable decimal digits (*excluding* the decimal point and sign, but including ``.fractional_digits``)
         *       .. note:: should be in the range of 1 - 65
         *     ``.fractional_digits``
         *       is the decimal digits to display out of length
         *       .. note:: should be in the range of 0 - 30
         *     ``value``
         *       the following bytes sequence:
         *         ``| scale | BCD | sign | [0x0] |``
         *       * scale - 8bit scale value (number of decimal digit after the '.')
         *       * BCD - BCD encoded digits (4 bits for each digit)
         *       * sign - sign encoded on 4 bits (0xc = "+", 0xd = "-")
         *       * 0x0 - last 4bits if length(digits) % 2 == 0
         *       Example: x04 0x12 0x34 0x01 0xd0 -&gt; -12.3401
         *   SET
         *     A list of strings representing a SET of values.
         *     ``value``
         *       A sequence of 0 or more of protobuf's bytes (length prepended octets) or one of
         *       the special sequences with a predefined meaning listed below.
         *       Example (length of the bytes array shown in brackets):
         *         * ``[0]`` - the NULL value
         *         * ``[1] 0x00`` - a set containing a blank string ''
         *         * ``[1] 0x01`` - this would be an invalid value, but is to be treated as the empty set
         *         * ``[2] 0x01 0x00`` - a set with a single item, which is the '&#92;0' character
         *         * ``[8] 0x03 F O O 0x03 B A R`` - a set with 2 items: FOO,BAR
         * :param name: name of the column
         * :param original_name: name of the column before an alias was applied
         * :param table: name of the table the column orginates from
         * :param original_table: name of the table the column orginates from before an alias was applied
         * :param schema: schema the column originates from
         * :param catalog:
         *   catalog the schema originates from
         *   .. note::
         *     as there is current no support for catalogs in MySQL, don't expect this field to be set.
         *     In the MySQL C/S protocol the field had the value ``def`` all the time.
         * :param fractional_digits: displayed factional decimal digits for floating point and fixed point numbers
         * :param length: maximum count of displayable characters of .type
         * :param flags:
         *   ``.type`` specific flags
         *   ======= ====== ===========
         *   type    value  description
         *   ======= ====== ===========
         *   UINT    0x0001 zerofill
         *   DOUBLE  0x0001 unsigned
         *   FLOAT   0x0001 unsigned
         *   DECIMAL 0x0001 unsigned
         *   BYTES   0x0001 rightpad
         *   ======= ====== ===========
         *   ====== ================
         *   value  description
         *   ====== ================
         *   0x0010 NOT_NULL
         *   0x0020 PRIMARY_KEY
         *   0x0040 UNIQUE_KEY
         *   0x0080 MULTIPLE_KEY
         *   0x0100 AUTO_INCREMENT
         *   ====== ================
         *   default: 0
         * :param content_type:
         *   a hint about the higher-level encoding of a BYTES field
         *   ====== ====== ===========
         *   type   value  description
         *   ====== ====== ===========
         *   BYTES  0x0001 GEOMETRY (WKB encoding)
         *   BYTES  0x0002 JSON (text encoding)
         *   BYTES  0x0003 XML (text encoding)
         *   ====== ====== ===========
         *   .. note::
         *     this list isn't comprehensive. As guideline: the field's value is expected
         *     to pass a validator check on client and server if this field is set.
         *     If the server adds more internal datatypes that rely on BLOB storage
         *     like image manipulation, seeking into complex types in BLOBs, ... more
         *     types will be added.
         * </pre>
         *
         * Protobuf type {@code Polarx.Resultset.ColumnMetaData}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:Polarx.Resultset.ColumnMetaData)
            com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_ColumnMetaData_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
                return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_ColumnMetaData_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                        com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.class, com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.Builder.class);
            }

            // Construct using com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.newBuilder()
            private Builder() {
                maybeForceBuilderInitialization();
            }

            private Builder(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
                }
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                type_ = 1;
                bitField0_ = (bitField0_ & ~0x00000001);
                originalType_ = 0;
                bitField0_ = (bitField0_ & ~0x00000002);
                name_ = com.google.protobuf.ByteString.EMPTY;
                bitField0_ = (bitField0_ & ~0x00000004);
                originalName_ = com.google.protobuf.ByteString.EMPTY;
                bitField0_ = (bitField0_ & ~0x00000008);
                table_ = com.google.protobuf.ByteString.EMPTY;
                bitField0_ = (bitField0_ & ~0x00000010);
                originalTable_ = com.google.protobuf.ByteString.EMPTY;
                bitField0_ = (bitField0_ & ~0x00000020);
                schema_ = com.google.protobuf.ByteString.EMPTY;
                bitField0_ = (bitField0_ & ~0x00000040);
                catalog_ = com.google.protobuf.ByteString.EMPTY;
                bitField0_ = (bitField0_ & ~0x00000080);
                collation_ = 0L;
                bitField0_ = (bitField0_ & ~0x00000100);
                fractionalDigits_ = 0;
                bitField0_ = (bitField0_ & ~0x00000200);
                length_ = 0;
                bitField0_ = (bitField0_ & ~0x00000400);
                flags_ = 0;
                bitField0_ = (bitField0_ & ~0x00000800);
                contentType_ = 0;
                bitField0_ = (bitField0_ & ~0x00001000);
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
                return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_ColumnMetaData_descriptor;
            }

            @java.lang.Override
            public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData getDefaultInstanceForType() {
                return com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.getDefaultInstance();
            }

            @java.lang.Override
            public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData build() {
                com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData buildPartial() {
                com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData result = new com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData(this);
                int from_bitField0_ = bitField0_;
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    to_bitField0_ |= 0x00000001;
                }
                result.type_ = type_;
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    to_bitField0_ |= 0x00000002;
                }
                result.originalType_ = originalType_;
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    to_bitField0_ |= 0x00000004;
                }
                result.name_ = name_;
                if (((from_bitField0_ & 0x00000008) != 0)) {
                    to_bitField0_ |= 0x00000008;
                }
                result.originalName_ = originalName_;
                if (((from_bitField0_ & 0x00000010) != 0)) {
                    to_bitField0_ |= 0x00000010;
                }
                result.table_ = table_;
                if (((from_bitField0_ & 0x00000020) != 0)) {
                    to_bitField0_ |= 0x00000020;
                }
                result.originalTable_ = originalTable_;
                if (((from_bitField0_ & 0x00000040) != 0)) {
                    to_bitField0_ |= 0x00000040;
                }
                result.schema_ = schema_;
                if (((from_bitField0_ & 0x00000080) != 0)) {
                    to_bitField0_ |= 0x00000080;
                }
                result.catalog_ = catalog_;
                if (((from_bitField0_ & 0x00000100) != 0)) {
                    result.collation_ = collation_;
                    to_bitField0_ |= 0x00000100;
                }
                if (((from_bitField0_ & 0x00000200) != 0)) {
                    result.fractionalDigits_ = fractionalDigits_;
                    to_bitField0_ |= 0x00000200;
                }
                if (((from_bitField0_ & 0x00000400) != 0)) {
                    result.length_ = length_;
                    to_bitField0_ |= 0x00000400;
                }
                if (((from_bitField0_ & 0x00000800) != 0)) {
                    result.flags_ = flags_;
                    to_bitField0_ |= 0x00000800;
                }
                if (((from_bitField0_ & 0x00001000) != 0)) {
                    result.contentType_ = contentType_;
                    to_bitField0_ |= 0x00001000;
                }
                result.bitField0_ = to_bitField0_;
                onBuilt();
                return result;
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData) {
                    return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData)other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData other) {
                if (other == com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.getDefaultInstance()) return this;
                if (other.hasType()) {
                    setType(other.getType());
                }
                if (other.hasOriginalType()) {
                    setOriginalType(other.getOriginalType());
                }
                if (other.hasName()) {
                    setName(other.getName());
                }
                if (other.hasOriginalName()) {
                    setOriginalName(other.getOriginalName());
                }
                if (other.hasTable()) {
                    setTable(other.getTable());
                }
                if (other.hasOriginalTable()) {
                    setOriginalTable(other.getOriginalTable());
                }
                if (other.hasSchema()) {
                    setSchema(other.getSchema());
                }
                if (other.hasCatalog()) {
                    setCatalog(other.getCatalog());
                }
                if (other.hasCollation()) {
                    setCollation(other.getCollation());
                }
                if (other.hasFractionalDigits()) {
                    setFractionalDigits(other.getFractionalDigits());
                }
                if (other.hasLength()) {
                    setLength(other.getLength());
                }
                if (other.hasFlags()) {
                    setFlags(other.getFlags());
                }
                if (other.hasContentType()) {
                    setContentType(other.getContentType());
                }
                this.mergeUnknownFields(other.unknownFields);
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                if (!hasType()) {
                    return false;
                }
                return hasOriginalType();
            }

            @java.lang.Override
            public Builder mergeFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
                com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData parsedMessage = null;
                try {
                    parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData) e.getUnfinishedMessage();
                    throw e.unwrapIOException();
                } finally {
                    if (parsedMessage != null) {
                        mergeFrom(parsedMessage);
                    }
                }
                return this;
            }

            private int bitField0_;

            private int type_ = 1;

            /**
             * <pre>
             * datatype of the field in a row
             * </pre>
             *
             * <code>required .Polarx.Resultset.ColumnMetaData.FieldType type = 1;</code>
             * @return Whether the type field is set.
             */
            public boolean hasType() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <pre>
             * datatype of the field in a row
             * </pre>
             *
             * <code>required .Polarx.Resultset.ColumnMetaData.FieldType type = 1;</code>
             * @return The type.
             */
            public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType getType() {
                @SuppressWarnings("deprecation")
                com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType result = com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType.valueOf(type_);
                return result == null ? com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType.SINT : result;
            }

            /**
             * <pre>
             * datatype of the field in a row
             * </pre>
             *
             * <code>required .Polarx.Resultset.ColumnMetaData.FieldType type = 1;</code>
             * @param value The type to set.
             * @return This builder for chaining.
             */
            public Builder setType(com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000001;
                type_ = value.getNumber();
                onChanged();
                return this;
            }

            /**
             * <pre>
             * datatype of the field in a row
             * </pre>
             *
             * <code>required .Polarx.Resultset.ColumnMetaData.FieldType type = 1;</code>
             * @return This builder for chaining.
             */
            public Builder clearType() {
                bitField0_ = (bitField0_ & ~0x00000001);
                type_ = 1;
                onChanged();
                return this;
            }

            private int originalType_ = 0;

            /**
             * <code>required .Polarx.Resultset.ColumnMetaData.OriginalType original_type = 2;</code>
             * @return Whether the originalType field is set.
             */
            public boolean hasOriginalType() {
                return ((bitField0_ & 0x00000002) != 0);
            }

            /**
             * <code>required .Polarx.Resultset.ColumnMetaData.OriginalType original_type = 2;</code>
             * @return The originalType.
             */
            public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType getOriginalType() {
                @SuppressWarnings("deprecation")
                com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType result = com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType.valueOf(originalType_);
                return result == null ? com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType.MYSQL_TYPE_DECIMAL : result;
            }

            /**
             * <code>required .Polarx.Resultset.ColumnMetaData.OriginalType original_type = 2;</code>
             * @param value The originalType to set.
             * @return This builder for chaining.
             */
            public Builder setOriginalType(com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000002;
                originalType_ = value.getNumber();
                onChanged();
                return this;
            }

            /**
             * <code>required .Polarx.Resultset.ColumnMetaData.OriginalType original_type = 2;</code>
             * @return This builder for chaining.
             */
            public Builder clearOriginalType() {
                bitField0_ = (bitField0_ & ~0x00000002);
                originalType_ = 0;
                onChanged();
                return this;
            }

            private com.google.protobuf.ByteString name_ = com.google.protobuf.ByteString.EMPTY;

            /**
             * <code>optional bytes name = 3;</code>
             * @return Whether the name field is set.
             */
            public boolean hasName() {
                return ((bitField0_ & 0x00000004) != 0);
            }

            /**
             * <code>optional bytes name = 3;</code>
             * @return The name.
             */
            public com.google.protobuf.ByteString getName() {
                return name_;
            }

            /**
             * <code>optional bytes name = 3;</code>
             * @param value The name to set.
             * @return This builder for chaining.
             */
            public Builder setName(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000004;
                name_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional bytes name = 3;</code>
             * @return This builder for chaining.
             */
            public Builder clearName() {
                bitField0_ = (bitField0_ & ~0x00000004);
                name_ = getDefaultInstance().getName();
                onChanged();
                return this;
            }

            private com.google.protobuf.ByteString originalName_ = com.google.protobuf.ByteString.EMPTY;

            /**
             * <code>optional bytes original_name = 4;</code>
             * @return Whether the originalName field is set.
             */
            public boolean hasOriginalName() {
                return ((bitField0_ & 0x00000008) != 0);
            }

            /**
             * <code>optional bytes original_name = 4;</code>
             * @return The originalName.
             */
            public com.google.protobuf.ByteString getOriginalName() {
                return originalName_;
            }

            /**
             * <code>optional bytes original_name = 4;</code>
             * @param value The originalName to set.
             * @return This builder for chaining.
             */
            public Builder setOriginalName(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000008;
                originalName_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional bytes original_name = 4;</code>
             * @return This builder for chaining.
             */
            public Builder clearOriginalName() {
                bitField0_ = (bitField0_ & ~0x00000008);
                originalName_ = getDefaultInstance().getOriginalName();
                onChanged();
                return this;
            }

            private com.google.protobuf.ByteString table_ = com.google.protobuf.ByteString.EMPTY;

            /**
             * <code>optional bytes table = 5;</code>
             * @return Whether the table field is set.
             */
            public boolean hasTable() {
                return ((bitField0_ & 0x00000010) != 0);
            }

            /**
             * <code>optional bytes table = 5;</code>
             * @return The table.
             */
            public com.google.protobuf.ByteString getTable() {
                return table_;
            }

            /**
             * <code>optional bytes table = 5;</code>
             * @param value The table to set.
             * @return This builder for chaining.
             */
            public Builder setTable(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000010;
                table_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional bytes table = 5;</code>
             * @return This builder for chaining.
             */
            public Builder clearTable() {
                bitField0_ = (bitField0_ & ~0x00000010);
                table_ = getDefaultInstance().getTable();
                onChanged();
                return this;
            }

            private com.google.protobuf.ByteString originalTable_ = com.google.protobuf.ByteString.EMPTY;

            /**
             * <code>optional bytes original_table = 6;</code>
             * @return Whether the originalTable field is set.
             */
            public boolean hasOriginalTable() {
                return ((bitField0_ & 0x00000020) != 0);
            }

            /**
             * <code>optional bytes original_table = 6;</code>
             * @return The originalTable.
             */
            public com.google.protobuf.ByteString getOriginalTable() {
                return originalTable_;
            }

            /**
             * <code>optional bytes original_table = 6;</code>
             * @param value The originalTable to set.
             * @return This builder for chaining.
             */
            public Builder setOriginalTable(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000020;
                originalTable_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional bytes original_table = 6;</code>
             * @return This builder for chaining.
             */
            public Builder clearOriginalTable() {
                bitField0_ = (bitField0_ & ~0x00000020);
                originalTable_ = getDefaultInstance().getOriginalTable();
                onChanged();
                return this;
            }

            private com.google.protobuf.ByteString schema_ = com.google.protobuf.ByteString.EMPTY;

            /**
             * <code>optional bytes schema = 7;</code>
             * @return Whether the schema field is set.
             */
            public boolean hasSchema() {
                return ((bitField0_ & 0x00000040) != 0);
            }

            /**
             * <code>optional bytes schema = 7;</code>
             * @return The schema.
             */
            public com.google.protobuf.ByteString getSchema() {
                return schema_;
            }

            /**
             * <code>optional bytes schema = 7;</code>
             * @param value The schema to set.
             * @return This builder for chaining.
             */
            public Builder setSchema(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000040;
                schema_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional bytes schema = 7;</code>
             * @return This builder for chaining.
             */
            public Builder clearSchema() {
                bitField0_ = (bitField0_ & ~0x00000040);
                schema_ = getDefaultInstance().getSchema();
                onChanged();
                return this;
            }

            private com.google.protobuf.ByteString catalog_ = com.google.protobuf.ByteString.EMPTY;

            /**
             * <code>optional bytes catalog = 8;</code>
             * @return Whether the catalog field is set.
             */
            public boolean hasCatalog() {
                return ((bitField0_ & 0x00000080) != 0);
            }

            /**
             * <code>optional bytes catalog = 8;</code>
             * @return The catalog.
             */
            public com.google.protobuf.ByteString getCatalog() {
                return catalog_;
            }

            /**
             * <code>optional bytes catalog = 8;</code>
             * @param value The catalog to set.
             * @return This builder for chaining.
             */
            public Builder setCatalog(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000080;
                catalog_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional bytes catalog = 8;</code>
             * @return This builder for chaining.
             */
            public Builder clearCatalog() {
                bitField0_ = (bitField0_ & ~0x00000080);
                catalog_ = getDefaultInstance().getCatalog();
                onChanged();
                return this;
            }

            private long collation_ ;

            /**
             * <code>optional uint64 collation = 9;</code>
             * @return Whether the collation field is set.
             */
            public boolean hasCollation() {
                return ((bitField0_ & 0x00000100) != 0);
            }

            /**
             * <code>optional uint64 collation = 9;</code>
             * @return The collation.
             */
            public long getCollation() {
                return collation_;
            }

            /**
             * <code>optional uint64 collation = 9;</code>
             * @param value The collation to set.
             * @return This builder for chaining.
             */
            public Builder setCollation(long value) {
                bitField0_ |= 0x00000100;
                collation_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional uint64 collation = 9;</code>
             * @return This builder for chaining.
             */
            public Builder clearCollation() {
                bitField0_ = (bitField0_ & ~0x00000100);
                collation_ = 0L;
                onChanged();
                return this;
            }

            private int fractionalDigits_ ;

            /**
             * <code>optional uint32 fractional_digits = 10;</code>
             * @return Whether the fractionalDigits field is set.
             */
            public boolean hasFractionalDigits() {
                return ((bitField0_ & 0x00000200) != 0);
            }

            /**
             * <code>optional uint32 fractional_digits = 10;</code>
             * @return The fractionalDigits.
             */
            public int getFractionalDigits() {
                return fractionalDigits_;
            }

            /**
             * <code>optional uint32 fractional_digits = 10;</code>
             * @param value The fractionalDigits to set.
             * @return This builder for chaining.
             */
            public Builder setFractionalDigits(int value) {
                bitField0_ |= 0x00000200;
                fractionalDigits_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional uint32 fractional_digits = 10;</code>
             * @return This builder for chaining.
             */
            public Builder clearFractionalDigits() {
                bitField0_ = (bitField0_ & ~0x00000200);
                fractionalDigits_ = 0;
                onChanged();
                return this;
            }

            private int length_ ;

            /**
             * <code>optional uint32 length = 11;</code>
             * @return Whether the length field is set.
             */
            public boolean hasLength() {
                return ((bitField0_ & 0x00000400) != 0);
            }

            /**
             * <code>optional uint32 length = 11;</code>
             * @return The length.
             */
            public int getLength() {
                return length_;
            }

            /**
             * <code>optional uint32 length = 11;</code>
             * @param value The length to set.
             * @return This builder for chaining.
             */
            public Builder setLength(int value) {
                bitField0_ |= 0x00000400;
                length_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional uint32 length = 11;</code>
             * @return This builder for chaining.
             */
            public Builder clearLength() {
                bitField0_ = (bitField0_ & ~0x00000400);
                length_ = 0;
                onChanged();
                return this;
            }

            private int flags_ ;

            /**
             * <code>optional uint32 flags = 12;</code>
             * @return Whether the flags field is set.
             */
            public boolean hasFlags() {
                return ((bitField0_ & 0x00000800) != 0);
            }

            /**
             * <code>optional uint32 flags = 12;</code>
             * @return The flags.
             */
            public int getFlags() {
                return flags_;
            }

            /**
             * <code>optional uint32 flags = 12;</code>
             * @param value The flags to set.
             * @return This builder for chaining.
             */
            public Builder setFlags(int value) {
                bitField0_ |= 0x00000800;
                flags_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional uint32 flags = 12;</code>
             * @return This builder for chaining.
             */
            public Builder clearFlags() {
                bitField0_ = (bitField0_ & ~0x00000800);
                flags_ = 0;
                onChanged();
                return this;
            }

            private int contentType_ ;

            /**
             * <code>optional uint32 content_type = 13;</code>
             * @return Whether the contentType field is set.
             */
            public boolean hasContentType() {
                return ((bitField0_ & 0x00001000) != 0);
            }

            /**
             * <code>optional uint32 content_type = 13;</code>
             * @return The contentType.
             */
            public int getContentType() {
                return contentType_;
            }

            /**
             * <code>optional uint32 content_type = 13;</code>
             * @param value The contentType to set.
             * @return This builder for chaining.
             */
            public Builder setContentType(int value) {
                bitField0_ |= 0x00001000;
                contentType_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional uint32 content_type = 13;</code>
             * @return This builder for chaining.
             */
            public Builder clearContentType() {
                bitField0_ = (bitField0_ & ~0x00001000);
                contentType_ = 0;
                onChanged();
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:Polarx.Resultset.ColumnMetaData)
        }

        // @@protoc_insertion_point(class_scope:Polarx.Resultset.ColumnMetaData)
        private static final com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData();
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        @java.lang.Deprecated public static final com.google.protobuf.Parser<ColumnMetaData>
            PARSER = new com.google.protobuf.AbstractParser<ColumnMetaData>() {
            @java.lang.Override
            public ColumnMetaData parsePartialFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
                return new ColumnMetaData(input, extensionRegistry);
            }
        };

        public static com.google.protobuf.Parser<ColumnMetaData> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<ColumnMetaData> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface ColumnMetaDataCompatibleOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Polarx.Resultset.ColumnMetaDataCompatible)
        com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         * datatype of the field in a row
         * </pre>
         *
         * <code>required .Polarx.Resultset.ColumnMetaData.FieldType type = 1;</code>
         *
         * @return Whether the type field is set.
         */
        boolean hasType();

        /**
         * <pre>
         * datatype of the field in a row
         * </pre>
         *
         * <code>required .Polarx.Resultset.ColumnMetaData.FieldType type = 1;</code>
         *
         * @return The type.
         */
        com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType getType();

        /**
         * <code>optional bytes name = 2;</code>
         *
         * @return Whether the name field is set.
         */
        boolean hasName();

        /**
         * <code>optional bytes name = 2;</code>
         *
         * @return The name.
         */
        com.google.protobuf.ByteString getName();

        /**
         * <code>optional bytes original_name = 3;</code>
         *
         * @return Whether the originalName field is set.
         */
        boolean hasOriginalName();

        /**
         * <code>optional bytes original_name = 3;</code>
         *
         * @return The originalName.
         */
        com.google.protobuf.ByteString getOriginalName();

        /**
         * <code>optional bytes table = 4;</code>
         *
         * @return Whether the table field is set.
         */
        boolean hasTable();

        /**
         * <code>optional bytes table = 4;</code>
         *
         * @return The table.
         */
        com.google.protobuf.ByteString getTable();

        /**
         * <code>optional bytes original_table = 5;</code>
         *
         * @return Whether the originalTable field is set.
         */
        boolean hasOriginalTable();

        /**
         * <code>optional bytes original_table = 5;</code>
         *
         * @return The originalTable.
         */
        com.google.protobuf.ByteString getOriginalTable();

        /**
         * <code>optional bytes schema = 6;</code>
         *
         * @return Whether the schema field is set.
         */
        boolean hasSchema();

        /**
         * <code>optional bytes schema = 6;</code>
         *
         * @return The schema.
         */
        com.google.protobuf.ByteString getSchema();

        /**
         * <code>optional bytes catalog = 7;</code>
         *
         * @return Whether the catalog field is set.
         */
        boolean hasCatalog();

        /**
         * <code>optional bytes catalog = 7;</code>
         *
         * @return The catalog.
         */
        com.google.protobuf.ByteString getCatalog();

        /**
         * <code>optional uint64 collation = 8;</code>
         *
         * @return Whether the collation field is set.
         */
        boolean hasCollation();

        /**
         * <code>optional uint64 collation = 8;</code>
         *
         * @return The collation.
         */
        long getCollation();

        /**
         * <code>optional uint32 fractional_digits = 9;</code>
         *
         * @return Whether the fractionalDigits field is set.
         */
        boolean hasFractionalDigits();

        /**
         * <code>optional uint32 fractional_digits = 9;</code>
         *
         * @return The fractionalDigits.
         */
        int getFractionalDigits();

        /**
         * <code>optional uint32 length = 10;</code>
         *
         * @return Whether the length field is set.
         */
        boolean hasLength();

        /**
         * <code>optional uint32 length = 10;</code>
         *
         * @return The length.
         */
        int getLength();

        /**
         * <code>optional uint32 flags = 11;</code>
         *
         * @return Whether the flags field is set.
         */
        boolean hasFlags();

        /**
         * <code>optional uint32 flags = 11;</code>
         *
         * @return The flags.
         */
        int getFlags();

        /**
         * <code>optional uint32 content_type = 12;</code>
         *
         * @return Whether the contentType field is set.
         */
        boolean hasContentType();

        /**
         * <code>optional uint32 content_type = 12;</code>
         *
         * @return The contentType.
         */
        int getContentType();

        /**
         * <code>required .Polarx.Resultset.ColumnMetaData.OriginalType original_type = 20;</code>
         *
         * @return Whether the originalType field is set.
         */
        boolean hasOriginalType();

        /**
         * <code>required .Polarx.Resultset.ColumnMetaData.OriginalType original_type = 20;</code>
         *
         * @return The originalType.
         */
        com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType getOriginalType();
    }

    /**
     * Protobuf type {@code Polarx.Resultset.ColumnMetaDataCompatible}
     */
    public static final class ColumnMetaDataCompatible extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:Polarx.Resultset.ColumnMetaDataCompatible)
        ColumnMetaDataCompatibleOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use ColumnMetaDataCompatible.newBuilder() to construct.
        private ColumnMetaDataCompatible(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private ColumnMetaDataCompatible() {
            type_ = 1;
            name_ = com.google.protobuf.ByteString.EMPTY;
            originalName_ = com.google.protobuf.ByteString.EMPTY;
            table_ = com.google.protobuf.ByteString.EMPTY;
            originalTable_ = com.google.protobuf.ByteString.EMPTY;
            schema_ = com.google.protobuf.ByteString.EMPTY;
            catalog_ = com.google.protobuf.ByteString.EMPTY;
            originalType_ = 0;
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
            return new ColumnMetaDataCompatible();
        }

        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
            return this.unknownFields;
        }

        private ColumnMetaDataCompatible(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            this();
            if (extensionRegistry == null) {
                throw new java.lang.NullPointerException();
            }
            int mutable_bitField0_ = 0;
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder();
            try {
                boolean done = false;
                while (!done) {
                    int tag = input.readTag();
                    switch (tag) {
                    case 0:
                        done = true;
                        break;
                    case 8: {
                        int rawValue = input.readEnum();
                        @SuppressWarnings("deprecation")
                        com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType value =
                            com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType.valueOf(rawValue);
                        if (value == null) {
                            unknownFields.mergeVarintField(1, rawValue);
                        } else {
                            bitField0_ |= 0x00000001;
                            type_ = rawValue;
                        }
                        break;
                    }
                    case 18: {
                        bitField0_ |= 0x00000002;
                        name_ = input.readBytes();
                        break;
                    }
                    case 26: {
                        bitField0_ |= 0x00000004;
                        originalName_ = input.readBytes();
                        break;
                    }
                    case 34: {
                        bitField0_ |= 0x00000008;
                        table_ = input.readBytes();
                        break;
                    }
                    case 42: {
                        bitField0_ |= 0x00000010;
                        originalTable_ = input.readBytes();
                        break;
                    }
                    case 50: {
                        bitField0_ |= 0x00000020;
                        schema_ = input.readBytes();
                        break;
                    }
                    case 58: {
                        bitField0_ |= 0x00000040;
                        catalog_ = input.readBytes();
                        break;
                    }
                    case 64: {
                        bitField0_ |= 0x00000080;
                        collation_ = input.readUInt64();
                        break;
                    }
                    case 72: {
                        bitField0_ |= 0x00000100;
                        fractionalDigits_ = input.readUInt32();
                        break;
                    }
                    case 80: {
                        bitField0_ |= 0x00000200;
                        length_ = input.readUInt32();
                        break;
                    }
                    case 88: {
                        bitField0_ |= 0x00000400;
                        flags_ = input.readUInt32();
                        break;
                    }
                    case 96: {
                        bitField0_ |= 0x00000800;
                        contentType_ = input.readUInt32();
                        break;
                    }
                    case 160: {
                        int rawValue = input.readEnum();
                        @SuppressWarnings("deprecation")
                        com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType value =
                            com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType.valueOf(rawValue);
                        if (value == null) {
                            unknownFields.mergeVarintField(20, rawValue);
                        } else {
                            bitField0_ |= 0x00001000;
                            originalType_ = rawValue;
                        }
                        break;
                    }
                    default: {
                        if (!parseUnknownField(
                            input, unknownFields, extensionRegistry, tag)) {
                            done = true;
                        }
                        break;
                    }
                    }
                }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw e.setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
                throw new com.google.protobuf.InvalidProtocolBufferException(
                    e).setUnfinishedMessage(this);
            } finally {
                this.unknownFields = unknownFields.build();
                makeExtensionsImmutable();
            }
        }

        public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
            return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_ColumnMetaDataCompatible_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
            return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_ColumnMetaDataCompatible_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible.class,
                    com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible.Builder.class);
        }

        private int bitField0_;
        public static final int TYPE_FIELD_NUMBER = 1;
        private int type_;

        /**
         * <pre>
         * datatype of the field in a row
         * </pre>
         *
         * <code>required .Polarx.Resultset.ColumnMetaData.FieldType type = 1;</code>
         *
         * @return Whether the type field is set.
         */
        public boolean hasType() {
            return ((bitField0_ & 0x00000001) != 0);
        }

        /**
         * <pre>
         * datatype of the field in a row
         * </pre>
         *
         * <code>required .Polarx.Resultset.ColumnMetaData.FieldType type = 1;</code>
         *
         * @return The type.
         */
        public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType getType() {
            @SuppressWarnings("deprecation")
            com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType result =
                com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType.valueOf(type_);
            return result == null ? com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType.SINT : result;
        }

        public static final int NAME_FIELD_NUMBER = 2;
        private com.google.protobuf.ByteString name_;

        /**
         * <code>optional bytes name = 2;</code>
         *
         * @return Whether the name field is set.
         */
        public boolean hasName() {
            return ((bitField0_ & 0x00000002) != 0);
        }

        /**
         * <code>optional bytes name = 2;</code>
         *
         * @return The name.
         */
        public com.google.protobuf.ByteString getName() {
            return name_;
        }

        public static final int ORIGINAL_NAME_FIELD_NUMBER = 3;
        private com.google.protobuf.ByteString originalName_;

        /**
         * <code>optional bytes original_name = 3;</code>
         *
         * @return Whether the originalName field is set.
         */
        public boolean hasOriginalName() {
            return ((bitField0_ & 0x00000004) != 0);
        }

        /**
         * <code>optional bytes original_name = 3;</code>
         *
         * @return The originalName.
         */
        public com.google.protobuf.ByteString getOriginalName() {
            return originalName_;
        }

        public static final int TABLE_FIELD_NUMBER = 4;
        private com.google.protobuf.ByteString table_;

        /**
         * <code>optional bytes table = 4;</code>
         *
         * @return Whether the table field is set.
         */
        public boolean hasTable() {
            return ((bitField0_ & 0x00000008) != 0);
        }

        /**
         * <code>optional bytes table = 4;</code>
         *
         * @return The table.
         */
        public com.google.protobuf.ByteString getTable() {
            return table_;
        }

        public static final int ORIGINAL_TABLE_FIELD_NUMBER = 5;
        private com.google.protobuf.ByteString originalTable_;

        /**
         * <code>optional bytes original_table = 5;</code>
         *
         * @return Whether the originalTable field is set.
         */
        public boolean hasOriginalTable() {
            return ((bitField0_ & 0x00000010) != 0);
        }

        /**
         * <code>optional bytes original_table = 5;</code>
         *
         * @return The originalTable.
         */
        public com.google.protobuf.ByteString getOriginalTable() {
            return originalTable_;
        }

        public static final int SCHEMA_FIELD_NUMBER = 6;
        private com.google.protobuf.ByteString schema_;

        /**
         * <code>optional bytes schema = 6;</code>
         *
         * @return Whether the schema field is set.
         */
        public boolean hasSchema() {
            return ((bitField0_ & 0x00000020) != 0);
        }

        /**
         * <code>optional bytes schema = 6;</code>
         *
         * @return The schema.
         */
        public com.google.protobuf.ByteString getSchema() {
            return schema_;
        }

        public static final int CATALOG_FIELD_NUMBER = 7;
        private com.google.protobuf.ByteString catalog_;

        /**
         * <code>optional bytes catalog = 7;</code>
         *
         * @return Whether the catalog field is set.
         */
        public boolean hasCatalog() {
            return ((bitField0_ & 0x00000040) != 0);
        }

        /**
         * <code>optional bytes catalog = 7;</code>
         *
         * @return The catalog.
         */
        public com.google.protobuf.ByteString getCatalog() {
            return catalog_;
        }

        public static final int COLLATION_FIELD_NUMBER = 8;
        private long collation_;

        /**
         * <code>optional uint64 collation = 8;</code>
         *
         * @return Whether the collation field is set.
         */
        public boolean hasCollation() {
            return ((bitField0_ & 0x00000080) != 0);
        }

        /**
         * <code>optional uint64 collation = 8;</code>
         *
         * @return The collation.
         */
        public long getCollation() {
            return collation_;
        }

        public static final int FRACTIONAL_DIGITS_FIELD_NUMBER = 9;
        private int fractionalDigits_;

        /**
         * <code>optional uint32 fractional_digits = 9;</code>
         *
         * @return Whether the fractionalDigits field is set.
         */
        public boolean hasFractionalDigits() {
            return ((bitField0_ & 0x00000100) != 0);
        }

        /**
         * <code>optional uint32 fractional_digits = 9;</code>
         *
         * @return The fractionalDigits.
         */
        public int getFractionalDigits() {
            return fractionalDigits_;
        }

        public static final int LENGTH_FIELD_NUMBER = 10;
        private int length_;

        /**
         * <code>optional uint32 length = 10;</code>
         *
         * @return Whether the length field is set.
         */
        public boolean hasLength() {
            return ((bitField0_ & 0x00000200) != 0);
        }

        /**
         * <code>optional uint32 length = 10;</code>
         *
         * @return The length.
         */
        public int getLength() {
            return length_;
        }

        public static final int FLAGS_FIELD_NUMBER = 11;
        private int flags_;

        /**
         * <code>optional uint32 flags = 11;</code>
         *
         * @return Whether the flags field is set.
         */
        public boolean hasFlags() {
            return ((bitField0_ & 0x00000400) != 0);
        }

        /**
         * <code>optional uint32 flags = 11;</code>
         *
         * @return The flags.
         */
        public int getFlags() {
            return flags_;
        }

        public static final int CONTENT_TYPE_FIELD_NUMBER = 12;
        private int contentType_;

        /**
         * <code>optional uint32 content_type = 12;</code>
         *
         * @return Whether the contentType field is set.
         */
        public boolean hasContentType() {
            return ((bitField0_ & 0x00000800) != 0);
        }

        /**
         * <code>optional uint32 content_type = 12;</code>
         *
         * @return The contentType.
         */
        public int getContentType() {
            return contentType_;
        }

        public static final int ORIGINAL_TYPE_FIELD_NUMBER = 20;
        private int originalType_;

        /**
         * <code>required .Polarx.Resultset.ColumnMetaData.OriginalType original_type = 20;</code>
         *
         * @return Whether the originalType field is set.
         */
        public boolean hasOriginalType() {
            return ((bitField0_ & 0x00001000) != 0);
        }

        /**
         * <code>required .Polarx.Resultset.ColumnMetaData.OriginalType original_type = 20;</code>
         *
         * @return The originalType.
         */
        public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType getOriginalType() {
            @SuppressWarnings("deprecation")
            com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType result =
                com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType.valueOf(originalType_);
            return result == null ?
                com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType.MYSQL_TYPE_DECIMAL : result;
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;

            if (!hasType()) {
                memoizedIsInitialized = 0;
                return false;
            }
            if (!hasOriginalType()) {
                memoizedIsInitialized = 0;
                return false;
            }
            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
            if (((bitField0_ & 0x00000001) != 0)) {
                output.writeEnum(1, type_);
            }
            if (((bitField0_ & 0x00000002) != 0)) {
                output.writeBytes(2, name_);
            }
            if (((bitField0_ & 0x00000004) != 0)) {
                output.writeBytes(3, originalName_);
            }
            if (((bitField0_ & 0x00000008) != 0)) {
                output.writeBytes(4, table_);
            }
            if (((bitField0_ & 0x00000010) != 0)) {
                output.writeBytes(5, originalTable_);
            }
            if (((bitField0_ & 0x00000020) != 0)) {
                output.writeBytes(6, schema_);
            }
            if (((bitField0_ & 0x00000040) != 0)) {
                output.writeBytes(7, catalog_);
            }
            if (((bitField0_ & 0x00000080) != 0)) {
                output.writeUInt64(8, collation_);
            }
            if (((bitField0_ & 0x00000100) != 0)) {
                output.writeUInt32(9, fractionalDigits_);
            }
            if (((bitField0_ & 0x00000200) != 0)) {
                output.writeUInt32(10, length_);
            }
            if (((bitField0_ & 0x00000400) != 0)) {
                output.writeUInt32(11, flags_);
            }
            if (((bitField0_ & 0x00000800) != 0)) {
                output.writeUInt32(12, contentType_);
            }
            if (((bitField0_ & 0x00001000) != 0)) {
                output.writeEnum(20, originalType_);
            }
            unknownFields.writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;

            size = 0;
            if (((bitField0_ & 0x00000001) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeEnumSize(1, type_);
            }
            if (((bitField0_ & 0x00000002) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeBytesSize(2, name_);
            }
            if (((bitField0_ & 0x00000004) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeBytesSize(3, originalName_);
            }
            if (((bitField0_ & 0x00000008) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeBytesSize(4, table_);
            }
            if (((bitField0_ & 0x00000010) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeBytesSize(5, originalTable_);
            }
            if (((bitField0_ & 0x00000020) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeBytesSize(6, schema_);
            }
            if (((bitField0_ & 0x00000040) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeBytesSize(7, catalog_);
            }
            if (((bitField0_ & 0x00000080) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeUInt64Size(8, collation_);
            }
            if (((bitField0_ & 0x00000100) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeUInt32Size(9, fractionalDigits_);
            }
            if (((bitField0_ & 0x00000200) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeUInt32Size(10, length_);
            }
            if (((bitField0_ & 0x00000400) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeUInt32Size(11, flags_);
            }
            if (((bitField0_ & 0x00000800) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeUInt32Size(12, contentType_);
            }
            if (((bitField0_ & 0x00001000) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeEnumSize(20, originalType_);
            }
            size += unknownFields.getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible)) {
                return super.equals(obj);
            }
            com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible other =
                (com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible) obj;

            if (hasType() != other.hasType())
                return false;
            if (hasType()) {
                if (type_ != other.type_)
                    return false;
            }
            if (hasName() != other.hasName())
                return false;
            if (hasName()) {
                if (!getName()
                    .equals(other.getName()))
                    return false;
            }
            if (hasOriginalName() != other.hasOriginalName())
                return false;
            if (hasOriginalName()) {
                if (!getOriginalName()
                    .equals(other.getOriginalName()))
                    return false;
            }
            if (hasTable() != other.hasTable())
                return false;
            if (hasTable()) {
                if (!getTable()
                    .equals(other.getTable()))
                    return false;
            }
            if (hasOriginalTable() != other.hasOriginalTable())
                return false;
            if (hasOriginalTable()) {
                if (!getOriginalTable()
                    .equals(other.getOriginalTable()))
                    return false;
            }
            if (hasSchema() != other.hasSchema())
                return false;
            if (hasSchema()) {
                if (!getSchema()
                    .equals(other.getSchema()))
                    return false;
            }
            if (hasCatalog() != other.hasCatalog())
                return false;
            if (hasCatalog()) {
                if (!getCatalog()
                    .equals(other.getCatalog()))
                    return false;
            }
            if (hasCollation() != other.hasCollation())
                return false;
            if (hasCollation()) {
                if (getCollation()
                    != other.getCollation())
                    return false;
            }
            if (hasFractionalDigits() != other.hasFractionalDigits())
                return false;
            if (hasFractionalDigits()) {
                if (getFractionalDigits()
                    != other.getFractionalDigits())
                    return false;
            }
            if (hasLength() != other.hasLength())
                return false;
            if (hasLength()) {
                if (getLength()
                    != other.getLength())
                    return false;
            }
            if (hasFlags() != other.hasFlags())
                return false;
            if (hasFlags()) {
                if (getFlags()
                    != other.getFlags())
                    return false;
            }
            if (hasContentType() != other.hasContentType())
                return false;
            if (hasContentType()) {
                if (getContentType()
                    != other.getContentType())
                    return false;
            }
            if (hasOriginalType() != other.hasOriginalType())
                return false;
            if (hasOriginalType()) {
                if (originalType_ != other.originalType_)
                    return false;
            }
            return unknownFields.equals(other.unknownFields);
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasType()) {
                hash = (37 * hash) + TYPE_FIELD_NUMBER;
                hash = (53 * hash) + type_;
            }
            if (hasName()) {
                hash = (37 * hash) + NAME_FIELD_NUMBER;
                hash = (53 * hash) + getName().hashCode();
            }
            if (hasOriginalName()) {
                hash = (37 * hash) + ORIGINAL_NAME_FIELD_NUMBER;
                hash = (53 * hash) + getOriginalName().hashCode();
            }
            if (hasTable()) {
                hash = (37 * hash) + TABLE_FIELD_NUMBER;
                hash = (53 * hash) + getTable().hashCode();
            }
            if (hasOriginalTable()) {
                hash = (37 * hash) + ORIGINAL_TABLE_FIELD_NUMBER;
                hash = (53 * hash) + getOriginalTable().hashCode();
            }
            if (hasSchema()) {
                hash = (37 * hash) + SCHEMA_FIELD_NUMBER;
                hash = (53 * hash) + getSchema().hashCode();
            }
            if (hasCatalog()) {
                hash = (37 * hash) + CATALOG_FIELD_NUMBER;
                hash = (53 * hash) + getCatalog().hashCode();
            }
            if (hasCollation()) {
                hash = (37 * hash) + COLLATION_FIELD_NUMBER;
                hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                    getCollation());
            }
            if (hasFractionalDigits()) {
                hash = (37 * hash) + FRACTIONAL_DIGITS_FIELD_NUMBER;
                hash = (53 * hash) + getFractionalDigits();
            }
            if (hasLength()) {
                hash = (37 * hash) + LENGTH_FIELD_NUMBER;
                hash = (53 * hash) + getLength();
            }
            if (hasFlags()) {
                hash = (37 * hash) + FLAGS_FIELD_NUMBER;
                hash = (53 * hash) + getFlags();
            }
            if (hasContentType()) {
                hash = (37 * hash) + CONTENT_TYPE_FIELD_NUMBER;
                hash = (53 * hash) + getContentType();
            }
            if (hasOriginalType()) {
                hash = (37 * hash) + ORIGINAL_TYPE_FIELD_NUMBER;
                hash = (53 * hash) + originalType_;
            }
            hash = (29 * hash) + unknownFields.hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible parseFrom(
            java.io.InputStream input)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible parseDelimitedFrom(
            java.io.InputStream input)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(
            com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code Polarx.Resultset.ColumnMetaDataCompatible}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:Polarx.Resultset.ColumnMetaDataCompatible)
            com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatibleOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_ColumnMetaDataCompatible_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
                return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_ColumnMetaDataCompatible_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                        com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible.class,
                        com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible.Builder.class);
            }

            // Construct using com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible.newBuilder()
            private Builder() {
                maybeForceBuilderInitialization();
            }

            private Builder(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
                }
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                type_ = 1;
                bitField0_ = (bitField0_ & ~0x00000001);
                name_ = com.google.protobuf.ByteString.EMPTY;
                bitField0_ = (bitField0_ & ~0x00000002);
                originalName_ = com.google.protobuf.ByteString.EMPTY;
                bitField0_ = (bitField0_ & ~0x00000004);
                table_ = com.google.protobuf.ByteString.EMPTY;
                bitField0_ = (bitField0_ & ~0x00000008);
                originalTable_ = com.google.protobuf.ByteString.EMPTY;
                bitField0_ = (bitField0_ & ~0x00000010);
                schema_ = com.google.protobuf.ByteString.EMPTY;
                bitField0_ = (bitField0_ & ~0x00000020);
                catalog_ = com.google.protobuf.ByteString.EMPTY;
                bitField0_ = (bitField0_ & ~0x00000040);
                collation_ = 0L;
                bitField0_ = (bitField0_ & ~0x00000080);
                fractionalDigits_ = 0;
                bitField0_ = (bitField0_ & ~0x00000100);
                length_ = 0;
                bitField0_ = (bitField0_ & ~0x00000200);
                flags_ = 0;
                bitField0_ = (bitField0_ & ~0x00000400);
                contentType_ = 0;
                bitField0_ = (bitField0_ & ~0x00000800);
                originalType_ = 0;
                bitField0_ = (bitField0_ & ~0x00001000);
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
                return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_ColumnMetaDataCompatible_descriptor;
            }

            @java.lang.Override
            public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible getDefaultInstanceForType() {
                return com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible.getDefaultInstance();
            }

            @java.lang.Override
            public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible build() {
                com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible buildPartial() {
                com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible result =
                    new com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible(this);
                int from_bitField0_ = bitField0_;
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    to_bitField0_ |= 0x00000001;
                }
                result.type_ = type_;
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    to_bitField0_ |= 0x00000002;
                }
                result.name_ = name_;
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    to_bitField0_ |= 0x00000004;
                }
                result.originalName_ = originalName_;
                if (((from_bitField0_ & 0x00000008) != 0)) {
                    to_bitField0_ |= 0x00000008;
                }
                result.table_ = table_;
                if (((from_bitField0_ & 0x00000010) != 0)) {
                    to_bitField0_ |= 0x00000010;
                }
                result.originalTable_ = originalTable_;
                if (((from_bitField0_ & 0x00000020) != 0)) {
                    to_bitField0_ |= 0x00000020;
                }
                result.schema_ = schema_;
                if (((from_bitField0_ & 0x00000040) != 0)) {
                    to_bitField0_ |= 0x00000040;
                }
                result.catalog_ = catalog_;
                if (((from_bitField0_ & 0x00000080) != 0)) {
                    result.collation_ = collation_;
                    to_bitField0_ |= 0x00000080;
                }
                if (((from_bitField0_ & 0x00000100) != 0)) {
                    result.fractionalDigits_ = fractionalDigits_;
                    to_bitField0_ |= 0x00000100;
                }
                if (((from_bitField0_ & 0x00000200) != 0)) {
                    result.length_ = length_;
                    to_bitField0_ |= 0x00000200;
                }
                if (((from_bitField0_ & 0x00000400) != 0)) {
                    result.flags_ = flags_;
                    to_bitField0_ |= 0x00000400;
                }
                if (((from_bitField0_ & 0x00000800) != 0)) {
                    result.contentType_ = contentType_;
                    to_bitField0_ |= 0x00000800;
                }
                if (((from_bitField0_ & 0x00001000) != 0)) {
                    to_bitField0_ |= 0x00001000;
                }
                result.originalType_ = originalType_;
                result.bitField0_ = to_bitField0_;
                onBuilt();
                return result;
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible) {
                    return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible other) {
                if (other == com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible.getDefaultInstance())
                    return this;
                if (other.hasType()) {
                    setType(other.getType());
                }
                if (other.hasName()) {
                    setName(other.getName());
                }
                if (other.hasOriginalName()) {
                    setOriginalName(other.getOriginalName());
                }
                if (other.hasTable()) {
                    setTable(other.getTable());
                }
                if (other.hasOriginalTable()) {
                    setOriginalTable(other.getOriginalTable());
                }
                if (other.hasSchema()) {
                    setSchema(other.getSchema());
                }
                if (other.hasCatalog()) {
                    setCatalog(other.getCatalog());
                }
                if (other.hasCollation()) {
                    setCollation(other.getCollation());
                }
                if (other.hasFractionalDigits()) {
                    setFractionalDigits(other.getFractionalDigits());
                }
                if (other.hasLength()) {
                    setLength(other.getLength());
                }
                if (other.hasFlags()) {
                    setFlags(other.getFlags());
                }
                if (other.hasContentType()) {
                    setContentType(other.getContentType());
                }
                if (other.hasOriginalType()) {
                    setOriginalType(other.getOriginalType());
                }
                this.mergeUnknownFields(other.unknownFields);
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                if (!hasType()) {
                    return false;
                }
                return hasOriginalType();
            }

            @java.lang.Override
            public Builder mergeFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
                com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible parsedMessage = null;
                try {
                    parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    parsedMessage =
                        (com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible) e.getUnfinishedMessage();
                    throw e.unwrapIOException();
                } finally {
                    if (parsedMessage != null) {
                        mergeFrom(parsedMessage);
                    }
                }
                return this;
            }

            private int bitField0_;

            private int type_ = 1;

            /**
             * <pre>
             * datatype of the field in a row
             * </pre>
             *
             * <code>required .Polarx.Resultset.ColumnMetaData.FieldType type = 1;</code>
             *
             * @return Whether the type field is set.
             */
            public boolean hasType() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <pre>
             * datatype of the field in a row
             * </pre>
             *
             * <code>required .Polarx.Resultset.ColumnMetaData.FieldType type = 1;</code>
             *
             * @return The type.
             */
            public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType getType() {
                @SuppressWarnings("deprecation")
                com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType result =
                    com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType.valueOf(type_);
                return result == null ? com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType.SINT :
                    result;
            }

            /**
             * <pre>
             * datatype of the field in a row
             * </pre>
             *
             * <code>required .Polarx.Resultset.ColumnMetaData.FieldType type = 1;</code>
             *
             * @param value The type to set.
             * @return This builder for chaining.
             */
            public Builder setType(com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.FieldType value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000001;
                type_ = value.getNumber();
                onChanged();
                return this;
            }

            /**
             * <pre>
             * datatype of the field in a row
             * </pre>
             *
             * <code>required .Polarx.Resultset.ColumnMetaData.FieldType type = 1;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearType() {
                bitField0_ = (bitField0_ & ~0x00000001);
                type_ = 1;
                onChanged();
                return this;
            }

            private com.google.protobuf.ByteString name_ = com.google.protobuf.ByteString.EMPTY;

            /**
             * <code>optional bytes name = 2;</code>
             *
             * @return Whether the name field is set.
             */
            public boolean hasName() {
                return ((bitField0_ & 0x00000002) != 0);
            }

            /**
             * <code>optional bytes name = 2;</code>
             *
             * @return The name.
             */
            public com.google.protobuf.ByteString getName() {
                return name_;
            }

            /**
             * <code>optional bytes name = 2;</code>
             *
             * @param value The name to set.
             * @return This builder for chaining.
             */
            public Builder setName(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000002;
                name_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional bytes name = 2;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearName() {
                bitField0_ = (bitField0_ & ~0x00000002);
                name_ = getDefaultInstance().getName();
                onChanged();
                return this;
            }

            private com.google.protobuf.ByteString originalName_ = com.google.protobuf.ByteString.EMPTY;

            /**
             * <code>optional bytes original_name = 3;</code>
             *
             * @return Whether the originalName field is set.
             */
            public boolean hasOriginalName() {
                return ((bitField0_ & 0x00000004) != 0);
            }

            /**
             * <code>optional bytes original_name = 3;</code>
             *
             * @return The originalName.
             */
            public com.google.protobuf.ByteString getOriginalName() {
                return originalName_;
            }

            /**
             * <code>optional bytes original_name = 3;</code>
             *
             * @param value The originalName to set.
             * @return This builder for chaining.
             */
            public Builder setOriginalName(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000004;
                originalName_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional bytes original_name = 3;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearOriginalName() {
                bitField0_ = (bitField0_ & ~0x00000004);
                originalName_ = getDefaultInstance().getOriginalName();
                onChanged();
                return this;
            }

            private com.google.protobuf.ByteString table_ = com.google.protobuf.ByteString.EMPTY;

            /**
             * <code>optional bytes table = 4;</code>
             *
             * @return Whether the table field is set.
             */
            public boolean hasTable() {
                return ((bitField0_ & 0x00000008) != 0);
            }

            /**
             * <code>optional bytes table = 4;</code>
             *
             * @return The table.
             */
            public com.google.protobuf.ByteString getTable() {
                return table_;
            }

            /**
             * <code>optional bytes table = 4;</code>
             *
             * @param value The table to set.
             * @return This builder for chaining.
             */
            public Builder setTable(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000008;
                table_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional bytes table = 4;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearTable() {
                bitField0_ = (bitField0_ & ~0x00000008);
                table_ = getDefaultInstance().getTable();
                onChanged();
                return this;
            }

            private com.google.protobuf.ByteString originalTable_ = com.google.protobuf.ByteString.EMPTY;

            /**
             * <code>optional bytes original_table = 5;</code>
             *
             * @return Whether the originalTable field is set.
             */
            public boolean hasOriginalTable() {
                return ((bitField0_ & 0x00000010) != 0);
            }

            /**
             * <code>optional bytes original_table = 5;</code>
             *
             * @return The originalTable.
             */
            public com.google.protobuf.ByteString getOriginalTable() {
                return originalTable_;
            }

            /**
             * <code>optional bytes original_table = 5;</code>
             *
             * @param value The originalTable to set.
             * @return This builder for chaining.
             */
            public Builder setOriginalTable(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000010;
                originalTable_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional bytes original_table = 5;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearOriginalTable() {
                bitField0_ = (bitField0_ & ~0x00000010);
                originalTable_ = getDefaultInstance().getOriginalTable();
                onChanged();
                return this;
            }

            private com.google.protobuf.ByteString schema_ = com.google.protobuf.ByteString.EMPTY;

            /**
             * <code>optional bytes schema = 6;</code>
             *
             * @return Whether the schema field is set.
             */
            public boolean hasSchema() {
                return ((bitField0_ & 0x00000020) != 0);
            }

            /**
             * <code>optional bytes schema = 6;</code>
             *
             * @return The schema.
             */
            public com.google.protobuf.ByteString getSchema() {
                return schema_;
            }

            /**
             * <code>optional bytes schema = 6;</code>
             *
             * @param value The schema to set.
             * @return This builder for chaining.
             */
            public Builder setSchema(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000020;
                schema_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional bytes schema = 6;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearSchema() {
                bitField0_ = (bitField0_ & ~0x00000020);
                schema_ = getDefaultInstance().getSchema();
                onChanged();
                return this;
            }

            private com.google.protobuf.ByteString catalog_ = com.google.protobuf.ByteString.EMPTY;

            /**
             * <code>optional bytes catalog = 7;</code>
             *
             * @return Whether the catalog field is set.
             */
            public boolean hasCatalog() {
                return ((bitField0_ & 0x00000040) != 0);
            }

            /**
             * <code>optional bytes catalog = 7;</code>
             *
             * @return The catalog.
             */
            public com.google.protobuf.ByteString getCatalog() {
                return catalog_;
            }

            /**
             * <code>optional bytes catalog = 7;</code>
             *
             * @param value The catalog to set.
             * @return This builder for chaining.
             */
            public Builder setCatalog(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000040;
                catalog_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional bytes catalog = 7;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearCatalog() {
                bitField0_ = (bitField0_ & ~0x00000040);
                catalog_ = getDefaultInstance().getCatalog();
                onChanged();
                return this;
            }

            private long collation_;

            /**
             * <code>optional uint64 collation = 8;</code>
             *
             * @return Whether the collation field is set.
             */
            public boolean hasCollation() {
                return ((bitField0_ & 0x00000080) != 0);
            }

            /**
             * <code>optional uint64 collation = 8;</code>
             *
             * @return The collation.
             */
            public long getCollation() {
                return collation_;
            }

            /**
             * <code>optional uint64 collation = 8;</code>
             *
             * @param value The collation to set.
             * @return This builder for chaining.
             */
            public Builder setCollation(long value) {
                bitField0_ |= 0x00000080;
                collation_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional uint64 collation = 8;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearCollation() {
                bitField0_ = (bitField0_ & ~0x00000080);
                collation_ = 0L;
                onChanged();
                return this;
            }

            private int fractionalDigits_;

            /**
             * <code>optional uint32 fractional_digits = 9;</code>
             *
             * @return Whether the fractionalDigits field is set.
             */
            public boolean hasFractionalDigits() {
                return ((bitField0_ & 0x00000100) != 0);
            }

            /**
             * <code>optional uint32 fractional_digits = 9;</code>
             *
             * @return The fractionalDigits.
             */
            public int getFractionalDigits() {
                return fractionalDigits_;
            }

            /**
             * <code>optional uint32 fractional_digits = 9;</code>
             *
             * @param value The fractionalDigits to set.
             * @return This builder for chaining.
             */
            public Builder setFractionalDigits(int value) {
                bitField0_ |= 0x00000100;
                fractionalDigits_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional uint32 fractional_digits = 9;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearFractionalDigits() {
                bitField0_ = (bitField0_ & ~0x00000100);
                fractionalDigits_ = 0;
                onChanged();
                return this;
            }

            private int length_;

            /**
             * <code>optional uint32 length = 10;</code>
             *
             * @return Whether the length field is set.
             */
            public boolean hasLength() {
                return ((bitField0_ & 0x00000200) != 0);
            }

            /**
             * <code>optional uint32 length = 10;</code>
             *
             * @return The length.
             */
            public int getLength() {
                return length_;
            }

            /**
             * <code>optional uint32 length = 10;</code>
             *
             * @param value The length to set.
             * @return This builder for chaining.
             */
            public Builder setLength(int value) {
                bitField0_ |= 0x00000200;
                length_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional uint32 length = 10;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearLength() {
                bitField0_ = (bitField0_ & ~0x00000200);
                length_ = 0;
                onChanged();
                return this;
            }

            private int flags_;

            /**
             * <code>optional uint32 flags = 11;</code>
             *
             * @return Whether the flags field is set.
             */
            public boolean hasFlags() {
                return ((bitField0_ & 0x00000400) != 0);
            }

            /**
             * <code>optional uint32 flags = 11;</code>
             *
             * @return The flags.
             */
            public int getFlags() {
                return flags_;
            }

            /**
             * <code>optional uint32 flags = 11;</code>
             *
             * @param value The flags to set.
             * @return This builder for chaining.
             */
            public Builder setFlags(int value) {
                bitField0_ |= 0x00000400;
                flags_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional uint32 flags = 11;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearFlags() {
                bitField0_ = (bitField0_ & ~0x00000400);
                flags_ = 0;
                onChanged();
                return this;
            }

            private int contentType_;

            /**
             * <code>optional uint32 content_type = 12;</code>
             *
             * @return Whether the contentType field is set.
             */
            public boolean hasContentType() {
                return ((bitField0_ & 0x00000800) != 0);
            }

            /**
             * <code>optional uint32 content_type = 12;</code>
             *
             * @return The contentType.
             */
            public int getContentType() {
                return contentType_;
            }

            /**
             * <code>optional uint32 content_type = 12;</code>
             *
             * @param value The contentType to set.
             * @return This builder for chaining.
             */
            public Builder setContentType(int value) {
                bitField0_ |= 0x00000800;
                contentType_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional uint32 content_type = 12;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearContentType() {
                bitField0_ = (bitField0_ & ~0x00000800);
                contentType_ = 0;
                onChanged();
                return this;
            }

            private int originalType_ = 0;

            /**
             * <code>required .Polarx.Resultset.ColumnMetaData.OriginalType original_type = 20;</code>
             *
             * @return Whether the originalType field is set.
             */
            public boolean hasOriginalType() {
                return ((bitField0_ & 0x00001000) != 0);
            }

            /**
             * <code>required .Polarx.Resultset.ColumnMetaData.OriginalType original_type = 20;</code>
             *
             * @return The originalType.
             */
            public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType getOriginalType() {
                @SuppressWarnings("deprecation")
                com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType result =
                    com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType.valueOf(originalType_);
                return result == null ?
                    com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType.MYSQL_TYPE_DECIMAL :
                    result;
            }

            /**
             * <code>required .Polarx.Resultset.ColumnMetaData.OriginalType original_type = 20;</code>
             *
             * @param value The originalType to set.
             * @return This builder for chaining.
             */
            public Builder setOriginalType(
                com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaData.OriginalType value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00001000;
                originalType_ = value.getNumber();
                onChanged();
                return this;
            }

            /**
             * <code>required .Polarx.Resultset.ColumnMetaData.OriginalType original_type = 20;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearOriginalType() {
                bitField0_ = (bitField0_ & ~0x00001000);
                originalType_ = 0;
                onChanged();
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:Polarx.Resultset.ColumnMetaDataCompatible)
        }

        // @@protoc_insertion_point(class_scope:Polarx.Resultset.ColumnMetaDataCompatible)
        private static final com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible();
        }

        public static com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        @java.lang.Deprecated
        public static final com.google.protobuf.Parser<ColumnMetaDataCompatible>
            PARSER = new com.google.protobuf.AbstractParser<ColumnMetaDataCompatible>() {
            @java.lang.Override
            public ColumnMetaDataCompatible parsePartialFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
                return new ColumnMetaDataCompatible(input, extensionRegistry);
            }
        };

        public static com.google.protobuf.Parser<ColumnMetaDataCompatible> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<ColumnMetaDataCompatible> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnMetaDataCompatible getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface RowOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Polarx.Resultset.Row)
        com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated bytes field = 1;</code>
         * @return A list containing the field.
     */
    java.util.List<com.google.protobuf.ByteString> getFieldList();
    /**
     * <code>repeated bytes field = 1;</code>
     * @return The count of field.
     */
    int getFieldCount();
    /**
     * <code>repeated bytes field = 1;</code>
     * @param index The index of the element to return.
     * @return The field at the given index.
     */
    com.google.protobuf.ByteString getField(int index);
  }
  /**
   * <pre>
   *   Row in a Resultset
   *   a row is represented as a list of fields encoded as byte blobs.
   *   Blob of size 0 represents the NULL value. Otherwise, if it contains at least
   *   one byte, it encodes a non-null value of the field using encoding appropriate for the
   *   type of the value given by ``ColumnMetadata``, as specified
   *   in the :protobuf:msg:`Polarx.Resultset::ColumnMetaData` description.
   * </pre>
   *
   * Protobuf type {@code Polarx.Resultset.Row}
   */
  public  static final class Row extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Resultset.Row)
      RowOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Row.newBuilder() to construct.
    private Row(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Row() {
      field_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Row();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Row(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                field_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
                mutable_bitField0_ |= 0x00000001;
              }
              field_.add(input.readBytes());
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          field_ = java.util.Collections.unmodifiableList(field_); // C
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_Row_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_Row_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxResultset.Row.class, com.mysql.cj.polarx.protobuf.PolarxResultset.Row.Builder.class);
    }

    public static final int FIELD_FIELD_NUMBER = 1;
    private java.util.List<com.google.protobuf.ByteString> field_;
    /**
     * <code>repeated bytes field = 1;</code>
     * @return A list containing the field.
     */
    public java.util.List<com.google.protobuf.ByteString>
        getFieldList() {
      return field_;
    }
    /**
     * <code>repeated bytes field = 1;</code>
     * @return The count of field.
     */
    public int getFieldCount() {
      return field_.size();
    }
    /**
     * <code>repeated bytes field = 1;</code>
     * @param index The index of the element to return.
     * @return The field at the given index.
     */
    public com.google.protobuf.ByteString getField(int index) {
      return field_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < field_.size(); i++) {
        output.writeBytes(1, field_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < field_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(field_.get(i));
        }
        size += dataSize;
        size += 1 * getFieldList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.Row)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxResultset.Row other = (com.mysql.cj.polarx.protobuf.PolarxResultset.Row) obj;

      if (!getFieldList()
          .equals(other.getFieldList())) return false;
      return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getFieldCount() > 0) {
        hash = (37 * hash) + FIELD_FIELD_NUMBER;
        hash = (53 * hash) + getFieldList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Row parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Row parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Row parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Row parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Row parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Row parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Row parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Row parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Row parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Row parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Row parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Row parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxResultset.Row prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *   Row in a Resultset
     *   a row is represented as a list of fields encoded as byte blobs.
     *   Blob of size 0 represents the NULL value. Otherwise, if it contains at least
     *   one byte, it encodes a non-null value of the field using encoding appropriate for the
     *   type of the value given by ``ColumnMetadata``, as specified
     *   in the :protobuf:msg:`Polarx.Resultset::ColumnMetaData` description.
     * </pre>
     *
     * Protobuf type {@code Polarx.Resultset.Row}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Resultset.Row)
        com.mysql.cj.polarx.protobuf.PolarxResultset.RowOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_Row_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_Row_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxResultset.Row.class, com.mysql.cj.polarx.protobuf.PolarxResultset.Row.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxResultset.Row.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        field_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_Row_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.Row getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.Row.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.Row build() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.Row result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.Row buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.Row result = new com.mysql.cj.polarx.protobuf.PolarxResultset.Row(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) != 0)) {
          field_ = java.util.Collections.unmodifiableList(field_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.field_ = field_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.Row) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxResultset.Row)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxResultset.Row other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxResultset.Row.getDefaultInstance()) return this;
        if (!other.field_.isEmpty()) {
          if (field_.isEmpty()) {
            field_ = other.field_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureFieldIsMutable();
            field_.addAll(other.field_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxResultset.Row parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxResultset.Row) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<com.google.protobuf.ByteString> field_ = java.util.Collections.emptyList();
      private void ensureFieldIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          field_ = new java.util.ArrayList<com.google.protobuf.ByteString>(field_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated bytes field = 1;</code>
       * @return A list containing the field.
       */
      public java.util.List<com.google.protobuf.ByteString>
          getFieldList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(field_) : field_;
      }
      /**
       * <code>repeated bytes field = 1;</code>
       * @return The count of field.
       */
      public int getFieldCount() {
        return field_.size();
      }
      /**
       * <code>repeated bytes field = 1;</code>
       * @param index The index of the element to return.
       * @return The field at the given index.
       */
      public com.google.protobuf.ByteString getField(int index) {
        return field_.get(index);
      }
      /**
       * <code>repeated bytes field = 1;</code>
       * @param index The index to set the value at.
       * @param value The field to set.
       * @return This builder for chaining.
       */
      public Builder setField(
          int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureFieldIsMutable();
        field_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bytes field = 1;</code>
       * @param value The field to add.
       * @return This builder for chaining.
       */
      public Builder addField(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureFieldIsMutable();
        field_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bytes field = 1;</code>
       * @param values The field to add.
       * @return This builder for chaining.
       */
      public Builder addAllField(
          java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
        ensureFieldIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, field_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated bytes field = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearField() {
        field_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Resultset.Row)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Resultset.Row)
    private static final com.mysql.cj.polarx.protobuf.PolarxResultset.Row DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxResultset.Row();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Row getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<Row>
        PARSER = new com.google.protobuf.AbstractParser<Row>() {
      @java.lang.Override
      public Row parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Row(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Row> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Row> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxResultset.Row getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TokenDoneOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Resultset.TokenDone)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional int32 token_left = 1 [default = 0];</code>
     * @return Whether the tokenLeft field is set.
     */
    boolean hasTokenLeft();
    /**
     * <code>optional int32 token_left = 1 [default = 0];</code>
     * @return The tokenLeft.
     */
    int getTokenLeft();
  }
  /**
   * Protobuf type {@code Polarx.Resultset.TokenDone}
   */
  public  static final class TokenDone extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Resultset.TokenDone)
      TokenDoneOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TokenDone.newBuilder() to construct.
    private TokenDone(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TokenDone() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new TokenDone();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TokenDone(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              tokenLeft_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_TokenDone_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_TokenDone_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone.class, com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone.Builder.class);
    }

    private int bitField0_;
    public static final int TOKEN_LEFT_FIELD_NUMBER = 1;
    private int tokenLeft_;
    /**
     * <code>optional int32 token_left = 1 [default = 0];</code>
     * @return Whether the tokenLeft field is set.
     */
    public boolean hasTokenLeft() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int32 token_left = 1 [default = 0];</code>
     * @return The tokenLeft.
     */
    public int getTokenLeft() {
      return tokenLeft_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt32(1, tokenLeft_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, tokenLeft_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone other = (com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone) obj;

      if (hasTokenLeft() != other.hasTokenLeft()) return false;
      if (hasTokenLeft()) {
        if (getTokenLeft()
            != other.getTokenLeft()) return false;
      }
      return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasTokenLeft()) {
        hash = (37 * hash) + TOKEN_LEFT_FIELD_NUMBER;
        hash = (53 * hash) + getTokenLeft();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Polarx.Resultset.TokenDone}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Resultset.TokenDone)
        com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDoneOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_TokenDone_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_TokenDone_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone.class, com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        tokenLeft_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_TokenDone_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone build() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone result = new com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.tokenLeft_ = tokenLeft_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone.getDefaultInstance()) return this;
        if (other.hasTokenLeft()) {
          setTokenLeft(other.getTokenLeft());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int tokenLeft_ ;
      /**
       * <code>optional int32 token_left = 1 [default = 0];</code>
       * @return Whether the tokenLeft field is set.
       */
      public boolean hasTokenLeft() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional int32 token_left = 1 [default = 0];</code>
       * @return The tokenLeft.
       */
      public int getTokenLeft() {
        return tokenLeft_;
      }
      /**
       * <code>optional int32 token_left = 1 [default = 0];</code>
       * @param value The tokenLeft to set.
       * @return This builder for chaining.
       */
      public Builder setTokenLeft(int value) {
        bitField0_ |= 0x00000001;
        tokenLeft_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 token_left = 1 [default = 0];</code>
       * @return This builder for chaining.
       */
      public Builder clearTokenLeft() {
        bitField0_ = (bitField0_ & ~0x00000001);
        tokenLeft_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Resultset.TokenDone)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Resultset.TokenDone)
    private static final com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<TokenDone>
        PARSER = new com.google.protobuf.AbstractParser<TokenDone>() {
      @java.lang.Override
      public TokenDone parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new TokenDone(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<TokenDone> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<TokenDone> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxResultset.TokenDone getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChunkOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Resultset.Chunk)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required uint32 row_count = 1;</code>
     * @return Whether the rowCount field is set.
     */
    boolean hasRowCount();
    /**
     * <code>required uint32 row_count = 1;</code>
     * @return The rowCount.
     */
    int getRowCount();

    /**
     * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
     */
    java.util.List<com.mysql.cj.polarx.protobuf.PolarxResultset.Column>
        getColumnsList();
    /**
     * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxResultset.Column getColumns(int index);
    /**
     * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
     */
    int getColumnsCount();
    /**
     * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
     */
    java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnOrBuilder>
        getColumnsOrBuilderList();
    /**
     * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnOrBuilder getColumnsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * One chunk of a result set.
   * </pre>
   *
   * Protobuf type {@code Polarx.Resultset.Chunk}
   */
  public  static final class Chunk extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Resultset.Chunk)
      ChunkOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Chunk.newBuilder() to construct.
    private Chunk(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Chunk() {
      columns_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Chunk();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Chunk(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              rowCount_ = input.readUInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                columns_ = new java.util.ArrayList<com.mysql.cj.polarx.protobuf.PolarxResultset.Column>();
                mutable_bitField0_ |= 0x00000002;
              }
              columns_.add(
                  input.readMessage(com.mysql.cj.polarx.protobuf.PolarxResultset.Column.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          columns_ = java.util.Collections.unmodifiableList(columns_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_Chunk_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_Chunk_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk.class, com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk.Builder.class);
    }

    private int bitField0_;
    public static final int ROW_COUNT_FIELD_NUMBER = 1;
    private int rowCount_;
    /**
     * <code>required uint32 row_count = 1;</code>
     * @return Whether the rowCount field is set.
     */
    public boolean hasRowCount() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 row_count = 1;</code>
     * @return The rowCount.
     */
    public int getRowCount() {
      return rowCount_;
    }

    public static final int COLUMNS_FIELD_NUMBER = 2;
    private java.util.List<com.mysql.cj.polarx.protobuf.PolarxResultset.Column> columns_;
    /**
     * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
     */
    public java.util.List<com.mysql.cj.polarx.protobuf.PolarxResultset.Column> getColumnsList() {
      return columns_;
    }
    /**
     * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
     */
    public java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnOrBuilder>
        getColumnsOrBuilderList() {
      return columns_;
    }
    /**
     * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
     */
    public int getColumnsCount() {
      return columns_.size();
    }
    /**
     * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxResultset.Column getColumns(int index) {
      return columns_.get(index);
    }
    /**
     * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnOrBuilder getColumnsOrBuilder(
        int index) {
      return columns_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRowCount()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getColumnsCount(); i++) {
        if (!getColumns(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, rowCount_);
      }
      for (int i = 0; i < columns_.size(); i++) {
        output.writeMessage(2, columns_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, rowCount_);
      }
      for (int i = 0; i < columns_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, columns_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk other = (com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk) obj;

      if (hasRowCount() != other.hasRowCount()) return false;
      if (hasRowCount()) {
        if (getRowCount()
            != other.getRowCount()) return false;
      }
      if (!getColumnsList()
          .equals(other.getColumnsList())) return false;
      return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRowCount()) {
        hash = (37 * hash) + ROW_COUNT_FIELD_NUMBER;
        hash = (53 * hash) + getRowCount();
      }
      if (getColumnsCount() > 0) {
        hash = (37 * hash) + COLUMNS_FIELD_NUMBER;
        hash = (53 * hash) + getColumnsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * One chunk of a result set.
     * </pre>
     *
     * Protobuf type {@code Polarx.Resultset.Chunk}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Resultset.Chunk)
        com.mysql.cj.polarx.protobuf.PolarxResultset.ChunkOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_Chunk_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_Chunk_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk.class, com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getColumnsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        rowCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (columnsBuilder_ == null) {
          columns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          columnsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_Chunk_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk build() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk result = new com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.rowCount_ = rowCount_;
          to_bitField0_ |= 0x00000001;
        }
        if (columnsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            columns_ = java.util.Collections.unmodifiableList(columns_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.columns_ = columns_;
        } else {
          result.columns_ = columnsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk.getDefaultInstance()) return this;
        if (other.hasRowCount()) {
          setRowCount(other.getRowCount());
        }
        if (columnsBuilder_ == null) {
          if (!other.columns_.isEmpty()) {
            if (columns_.isEmpty()) {
              columns_ = other.columns_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureColumnsIsMutable();
              columns_.addAll(other.columns_);
            }
            onChanged();
          }
        } else {
          if (!other.columns_.isEmpty()) {
            if (columnsBuilder_.isEmpty()) {
              columnsBuilder_.dispose();
              columnsBuilder_ = null;
              columns_ = other.columns_;
              bitField0_ = (bitField0_ & ~0x00000002);
              columnsBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getColumnsFieldBuilder() : null;
            } else {
              columnsBuilder_.addAllMessages(other.columns_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasRowCount()) {
          return false;
        }
        for (int i = 0; i < getColumnsCount(); i++) {
          if (!getColumns(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int rowCount_ ;
      /**
       * <code>required uint32 row_count = 1;</code>
       * @return Whether the rowCount field is set.
       */
      public boolean hasRowCount() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 row_count = 1;</code>
       * @return The rowCount.
       */
      public int getRowCount() {
        return rowCount_;
      }
      /**
       * <code>required uint32 row_count = 1;</code>
       * @param value The rowCount to set.
       * @return This builder for chaining.
       */
      public Builder setRowCount(int value) {
        bitField0_ |= 0x00000001;
        rowCount_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 row_count = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRowCount() {
        bitField0_ = (bitField0_ & ~0x00000001);
        rowCount_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<com.mysql.cj.polarx.protobuf.PolarxResultset.Column> columns_ =
        java.util.Collections.emptyList();
      private void ensureColumnsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          columns_ = new java.util.ArrayList<com.mysql.cj.polarx.protobuf.PolarxResultset.Column>(columns_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxResultset.Column, com.mysql.cj.polarx.protobuf.PolarxResultset.Column.Builder, com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnOrBuilder> columnsBuilder_;

      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public java.util.List<com.mysql.cj.polarx.protobuf.PolarxResultset.Column> getColumnsList() {
        if (columnsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(columns_);
        } else {
          return columnsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public int getColumnsCount() {
        if (columnsBuilder_ == null) {
          return columns_.size();
        } else {
          return columnsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxResultset.Column getColumns(int index) {
        if (columnsBuilder_ == null) {
          return columns_.get(index);
        } else {
          return columnsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public Builder setColumns(
          int index, com.mysql.cj.polarx.protobuf.PolarxResultset.Column value) {
        if (columnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnsIsMutable();
          columns_.set(index, value);
          onChanged();
        } else {
          columnsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public Builder setColumns(
          int index, com.mysql.cj.polarx.protobuf.PolarxResultset.Column.Builder builderForValue) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          columns_.set(index, builderForValue.build());
          onChanged();
        } else {
          columnsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public Builder addColumns(com.mysql.cj.polarx.protobuf.PolarxResultset.Column value) {
        if (columnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnsIsMutable();
          columns_.add(value);
          onChanged();
        } else {
          columnsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public Builder addColumns(
          int index, com.mysql.cj.polarx.protobuf.PolarxResultset.Column value) {
        if (columnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnsIsMutable();
          columns_.add(index, value);
          onChanged();
        } else {
          columnsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public Builder addColumns(
          com.mysql.cj.polarx.protobuf.PolarxResultset.Column.Builder builderForValue) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          columns_.add(builderForValue.build());
          onChanged();
        } else {
          columnsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public Builder addColumns(
          int index, com.mysql.cj.polarx.protobuf.PolarxResultset.Column.Builder builderForValue) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          columns_.add(index, builderForValue.build());
          onChanged();
        } else {
          columnsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public Builder addAllColumns(
          java.lang.Iterable<? extends com.mysql.cj.polarx.protobuf.PolarxResultset.Column> values) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, columns_);
          onChanged();
        } else {
          columnsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public Builder clearColumns() {
        if (columnsBuilder_ == null) {
          columns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          columnsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public Builder removeColumns(int index) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          columns_.remove(index);
          onChanged();
        } else {
          columnsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxResultset.Column.Builder getColumnsBuilder(
          int index) {
        return getColumnsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnOrBuilder getColumnsOrBuilder(
          int index) {
        if (columnsBuilder_ == null) {
          return columns_.get(index);  } else {
          return columnsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public java.util.List<? extends com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnOrBuilder>
           getColumnsOrBuilderList() {
        if (columnsBuilder_ != null) {
          return columnsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(columns_);
        }
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxResultset.Column.Builder addColumnsBuilder() {
        return getColumnsFieldBuilder().addBuilder(
            com.mysql.cj.polarx.protobuf.PolarxResultset.Column.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxResultset.Column.Builder addColumnsBuilder(
          int index) {
        return getColumnsFieldBuilder().addBuilder(
            index, com.mysql.cj.polarx.protobuf.PolarxResultset.Column.getDefaultInstance());
      }
      /**
       * <code>repeated .Polarx.Resultset.Column columns = 2;</code>
       */
      public java.util.List<com.mysql.cj.polarx.protobuf.PolarxResultset.Column.Builder>
           getColumnsBuilderList() {
        return getColumnsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxResultset.Column, com.mysql.cj.polarx.protobuf.PolarxResultset.Column.Builder, com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnOrBuilder>
          getColumnsFieldBuilder() {
        if (columnsBuilder_ == null) {
          columnsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxResultset.Column, com.mysql.cj.polarx.protobuf.PolarxResultset.Column.Builder, com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnOrBuilder>(
                  columns_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          columns_ = null;
        }
        return columnsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Resultset.Chunk)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Resultset.Chunk)
    private static final com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<Chunk>
        PARSER = new com.google.protobuf.AbstractParser<Chunk>() {
      @java.lang.Override
      public Chunk parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Chunk(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Chunk> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Chunk> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxResultset.Chunk getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ColumnOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Resultset.Column)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional bytes null_bitmap = 1;</code>
     * @return Whether the nullBitmap field is set.
     */
    boolean hasNullBitmap();
    /**
     * <code>optional bytes null_bitmap = 1;</code>
     * @return The nullBitmap.
     */
    com.google.protobuf.ByteString getNullBitmap();

    /**
     * <code>optional .Polarx.Resultset.FixedSizeColumn fixed_size_column = 2;</code>
     * @return Whether the fixedSizeColumn field is set.
     */
    boolean hasFixedSizeColumn();
    /**
     * <code>optional .Polarx.Resultset.FixedSizeColumn fixed_size_column = 2;</code>
     * @return The fixedSizeColumn.
     */
    com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn getFixedSizeColumn();
    /**
     * <code>optional .Polarx.Resultset.FixedSizeColumn fixed_size_column = 2;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumnOrBuilder getFixedSizeColumnOrBuilder();

    /**
     * <code>optional .Polarx.Resultset.VariableSizeColumn variable_size_column = 3;</code>
     * @return Whether the variableSizeColumn field is set.
     */
    boolean hasVariableSizeColumn();
    /**
     * <code>optional .Polarx.Resultset.VariableSizeColumn variable_size_column = 3;</code>
     * @return The variableSizeColumn.
     */
    com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn getVariableSizeColumn();
    /**
     * <code>optional .Polarx.Resultset.VariableSizeColumn variable_size_column = 3;</code>
     */
    com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumnOrBuilder getVariableSizeColumnOrBuilder();
  }
  /**
   * <pre>
   * One column in a chunk.
   * ## Null Bitmap
   * If not set, then there's no null value in this column.
   * Encoding: each byte starts with least significant bit.
   * For example, the following bitmap
   * [true, false, false, true, true, false, true, true]
   * should be encoded as
   * 0x11011001
   * ## Column Value
   * It contains several optional column values, and which one should be set is determined by column's mysql type.
   * For example, if it's a LONG type, then `fixed_size_column` will be set.
   * </pre>
   *
   * Protobuf type {@code Polarx.Resultset.Column}
   */
  public  static final class Column extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Resultset.Column)
      ColumnOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Column.newBuilder() to construct.
    private Column(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Column() {
      nullBitmap_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Column();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Column(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              bitField0_ |= 0x00000001;
              nullBitmap_ = input.readBytes();
              break;
            }
            case 18: {
              com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) != 0)) {
                subBuilder = fixedSizeColumn_.toBuilder();
              }
              fixedSizeColumn_ = input.readMessage(com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(fixedSizeColumn_);
                fixedSizeColumn_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 26: {
              com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) != 0)) {
                subBuilder = variableSizeColumn_.toBuilder();
              }
              variableSizeColumn_ = input.readMessage(com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(variableSizeColumn_);
                variableSizeColumn_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_Column_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_Column_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxResultset.Column.class, com.mysql.cj.polarx.protobuf.PolarxResultset.Column.Builder.class);
    }

    private int bitField0_;
    public static final int NULL_BITMAP_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString nullBitmap_;
    /**
     * <code>optional bytes null_bitmap = 1;</code>
     * @return Whether the nullBitmap field is set.
     */
    public boolean hasNullBitmap() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional bytes null_bitmap = 1;</code>
     * @return The nullBitmap.
     */
    public com.google.protobuf.ByteString getNullBitmap() {
      return nullBitmap_;
    }

    public static final int FIXED_SIZE_COLUMN_FIELD_NUMBER = 2;
    private com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn fixedSizeColumn_;
    /**
     * <code>optional .Polarx.Resultset.FixedSizeColumn fixed_size_column = 2;</code>
     * @return Whether the fixedSizeColumn field is set.
     */
    public boolean hasFixedSizeColumn() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .Polarx.Resultset.FixedSizeColumn fixed_size_column = 2;</code>
     * @return The fixedSizeColumn.
     */
    public com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn getFixedSizeColumn() {
      return fixedSizeColumn_ == null ? com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.getDefaultInstance() : fixedSizeColumn_;
    }
    /**
     * <code>optional .Polarx.Resultset.FixedSizeColumn fixed_size_column = 2;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumnOrBuilder getFixedSizeColumnOrBuilder() {
      return fixedSizeColumn_ == null ? com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.getDefaultInstance() : fixedSizeColumn_;
    }

    public static final int VARIABLE_SIZE_COLUMN_FIELD_NUMBER = 3;
    private com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn variableSizeColumn_;
    /**
     * <code>optional .Polarx.Resultset.VariableSizeColumn variable_size_column = 3;</code>
     * @return Whether the variableSizeColumn field is set.
     */
    public boolean hasVariableSizeColumn() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional .Polarx.Resultset.VariableSizeColumn variable_size_column = 3;</code>
     * @return The variableSizeColumn.
     */
    public com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn getVariableSizeColumn() {
      return variableSizeColumn_ == null ? com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.getDefaultInstance() : variableSizeColumn_;
    }
    /**
     * <code>optional .Polarx.Resultset.VariableSizeColumn variable_size_column = 3;</code>
     */
    public com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumnOrBuilder getVariableSizeColumnOrBuilder() {
      return variableSizeColumn_ == null ? com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.getDefaultInstance() : variableSizeColumn_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (hasFixedSizeColumn()) {
        if (!getFixedSizeColumn().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasVariableSizeColumn()) {
        if (!getVariableSizeColumn().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBytes(1, nullBitmap_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getFixedSizeColumn());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(3, getVariableSizeColumn());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, nullBitmap_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getFixedSizeColumn());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getVariableSizeColumn());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.Column)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxResultset.Column other = (com.mysql.cj.polarx.protobuf.PolarxResultset.Column) obj;

      if (hasNullBitmap() != other.hasNullBitmap()) return false;
      if (hasNullBitmap()) {
        if (!getNullBitmap()
            .equals(other.getNullBitmap())) return false;
      }
      if (hasFixedSizeColumn() != other.hasFixedSizeColumn()) return false;
      if (hasFixedSizeColumn()) {
        if (!getFixedSizeColumn()
            .equals(other.getFixedSizeColumn())) return false;
      }
      if (hasVariableSizeColumn() != other.hasVariableSizeColumn()) return false;
      if (hasVariableSizeColumn()) {
        if (!getVariableSizeColumn()
            .equals(other.getVariableSizeColumn())) return false;
      }
      return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasNullBitmap()) {
        hash = (37 * hash) + NULL_BITMAP_FIELD_NUMBER;
        hash = (53 * hash) + getNullBitmap().hashCode();
      }
      if (hasFixedSizeColumn()) {
        hash = (37 * hash) + FIXED_SIZE_COLUMN_FIELD_NUMBER;
        hash = (53 * hash) + getFixedSizeColumn().hashCode();
      }
      if (hasVariableSizeColumn()) {
        hash = (37 * hash) + VARIABLE_SIZE_COLUMN_FIELD_NUMBER;
        hash = (53 * hash) + getVariableSizeColumn().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Column parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Column parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Column parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Column parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Column parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Column parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Column parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Column parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Column parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Column parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Column parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Column parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxResultset.Column prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * One column in a chunk.
     * ## Null Bitmap
     * If not set, then there's no null value in this column.
     * Encoding: each byte starts with least significant bit.
     * For example, the following bitmap
     * [true, false, false, true, true, false, true, true]
     * should be encoded as
     * 0x11011001
     * ## Column Value
     * It contains several optional column values, and which one should be set is determined by column's mysql type.
     * For example, if it's a LONG type, then `fixed_size_column` will be set.
     * </pre>
     *
     * Protobuf type {@code Polarx.Resultset.Column}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Resultset.Column)
        com.mysql.cj.polarx.protobuf.PolarxResultset.ColumnOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_Column_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_Column_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxResultset.Column.class, com.mysql.cj.polarx.protobuf.PolarxResultset.Column.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxResultset.Column.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getFixedSizeColumnFieldBuilder();
          getVariableSizeColumnFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        nullBitmap_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (fixedSizeColumnBuilder_ == null) {
          fixedSizeColumn_ = null;
        } else {
          fixedSizeColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (variableSizeColumnBuilder_ == null) {
          variableSizeColumn_ = null;
        } else {
          variableSizeColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_Column_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.Column getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.Column.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.Column build() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.Column result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.Column buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.Column result = new com.mysql.cj.polarx.protobuf.PolarxResultset.Column(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
          result.nullBitmap_ = nullBitmap_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          if (fixedSizeColumnBuilder_ == null) {
            result.fixedSizeColumn_ = fixedSizeColumn_;
          } else {
            result.fixedSizeColumn_ = fixedSizeColumnBuilder_.build();
          }
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          if (variableSizeColumnBuilder_ == null) {
            result.variableSizeColumn_ = variableSizeColumn_;
          } else {
            result.variableSizeColumn_ = variableSizeColumnBuilder_.build();
          }
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.Column) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxResultset.Column)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxResultset.Column other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxResultset.Column.getDefaultInstance()) return this;
        if (other.hasNullBitmap()) {
          setNullBitmap(other.getNullBitmap());
        }
        if (other.hasFixedSizeColumn()) {
          mergeFixedSizeColumn(other.getFixedSizeColumn());
        }
        if (other.hasVariableSizeColumn()) {
          mergeVariableSizeColumn(other.getVariableSizeColumn());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (hasFixedSizeColumn()) {
          if (!getFixedSizeColumn().isInitialized()) {
            return false;
          }
        }
        if (hasVariableSizeColumn()) {
          return getVariableSizeColumn().isInitialized();
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxResultset.Column parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxResultset.Column) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.ByteString nullBitmap_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes null_bitmap = 1;</code>
       * @return Whether the nullBitmap field is set.
       */
      public boolean hasNullBitmap() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional bytes null_bitmap = 1;</code>
       * @return The nullBitmap.
       */
      public com.google.protobuf.ByteString getNullBitmap() {
        return nullBitmap_;
      }
      /**
       * <code>optional bytes null_bitmap = 1;</code>
       * @param value The nullBitmap to set.
       * @return This builder for chaining.
       */
      public Builder setNullBitmap(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        nullBitmap_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes null_bitmap = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearNullBitmap() {
        bitField0_ = (bitField0_ & ~0x00000001);
        nullBitmap_ = getDefaultInstance().getNullBitmap();
        onChanged();
        return this;
      }

      private com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn fixedSizeColumn_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn, com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.Builder, com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumnOrBuilder> fixedSizeColumnBuilder_;
      /**
       * <code>optional .Polarx.Resultset.FixedSizeColumn fixed_size_column = 2;</code>
       * @return Whether the fixedSizeColumn field is set.
       */
      public boolean hasFixedSizeColumn() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .Polarx.Resultset.FixedSizeColumn fixed_size_column = 2;</code>
       * @return The fixedSizeColumn.
       */
      public com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn getFixedSizeColumn() {
        if (fixedSizeColumnBuilder_ == null) {
          return fixedSizeColumn_ == null ? com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.getDefaultInstance() : fixedSizeColumn_;
        } else {
          return fixedSizeColumnBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .Polarx.Resultset.FixedSizeColumn fixed_size_column = 2;</code>
       */
      public Builder setFixedSizeColumn(com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn value) {
        if (fixedSizeColumnBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          fixedSizeColumn_ = value;
          onChanged();
        } else {
          fixedSizeColumnBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .Polarx.Resultset.FixedSizeColumn fixed_size_column = 2;</code>
       */
      public Builder setFixedSizeColumn(
          com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.Builder builderForValue) {
        if (fixedSizeColumnBuilder_ == null) {
          fixedSizeColumn_ = builderForValue.build();
          onChanged();
        } else {
          fixedSizeColumnBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .Polarx.Resultset.FixedSizeColumn fixed_size_column = 2;</code>
       */
      public Builder mergeFixedSizeColumn(com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn value) {
        if (fixedSizeColumnBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
              fixedSizeColumn_ != null &&
              fixedSizeColumn_ != com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.getDefaultInstance()) {
            fixedSizeColumn_ =
              com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.newBuilder(fixedSizeColumn_).mergeFrom(value).buildPartial();
          } else {
            fixedSizeColumn_ = value;
          }
          onChanged();
        } else {
          fixedSizeColumnBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .Polarx.Resultset.FixedSizeColumn fixed_size_column = 2;</code>
       */
      public Builder clearFixedSizeColumn() {
        if (fixedSizeColumnBuilder_ == null) {
          fixedSizeColumn_ = null;
          onChanged();
        } else {
          fixedSizeColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>optional .Polarx.Resultset.FixedSizeColumn fixed_size_column = 2;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.Builder getFixedSizeColumnBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getFixedSizeColumnFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .Polarx.Resultset.FixedSizeColumn fixed_size_column = 2;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumnOrBuilder getFixedSizeColumnOrBuilder() {
        if (fixedSizeColumnBuilder_ != null) {
          return fixedSizeColumnBuilder_.getMessageOrBuilder();
        } else {
          return fixedSizeColumn_ == null ?
              com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.getDefaultInstance() : fixedSizeColumn_;
        }
      }
      /**
       * <code>optional .Polarx.Resultset.FixedSizeColumn fixed_size_column = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn, com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.Builder, com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumnOrBuilder>
          getFixedSizeColumnFieldBuilder() {
        if (fixedSizeColumnBuilder_ == null) {
          fixedSizeColumnBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn, com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.Builder, com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumnOrBuilder>(
                  getFixedSizeColumn(),
                  getParentForChildren(),
                  isClean());
          fixedSizeColumn_ = null;
        }
        return fixedSizeColumnBuilder_;
      }

      private com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn variableSizeColumn_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn, com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.Builder, com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumnOrBuilder> variableSizeColumnBuilder_;
      /**
       * <code>optional .Polarx.Resultset.VariableSizeColumn variable_size_column = 3;</code>
       * @return Whether the variableSizeColumn field is set.
       */
      public boolean hasVariableSizeColumn() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional .Polarx.Resultset.VariableSizeColumn variable_size_column = 3;</code>
       * @return The variableSizeColumn.
       */
      public com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn getVariableSizeColumn() {
        if (variableSizeColumnBuilder_ == null) {
          return variableSizeColumn_ == null ? com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.getDefaultInstance() : variableSizeColumn_;
        } else {
          return variableSizeColumnBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .Polarx.Resultset.VariableSizeColumn variable_size_column = 3;</code>
       */
      public Builder setVariableSizeColumn(com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn value) {
        if (variableSizeColumnBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          variableSizeColumn_ = value;
          onChanged();
        } else {
          variableSizeColumnBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .Polarx.Resultset.VariableSizeColumn variable_size_column = 3;</code>
       */
      public Builder setVariableSizeColumn(
          com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.Builder builderForValue) {
        if (variableSizeColumnBuilder_ == null) {
          variableSizeColumn_ = builderForValue.build();
          onChanged();
        } else {
          variableSizeColumnBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .Polarx.Resultset.VariableSizeColumn variable_size_column = 3;</code>
       */
      public Builder mergeVariableSizeColumn(com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn value) {
        if (variableSizeColumnBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
              variableSizeColumn_ != null &&
              variableSizeColumn_ != com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.getDefaultInstance()) {
            variableSizeColumn_ =
              com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.newBuilder(variableSizeColumn_).mergeFrom(value).buildPartial();
          } else {
            variableSizeColumn_ = value;
          }
          onChanged();
        } else {
          variableSizeColumnBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .Polarx.Resultset.VariableSizeColumn variable_size_column = 3;</code>
       */
      public Builder clearVariableSizeColumn() {
        if (variableSizeColumnBuilder_ == null) {
          variableSizeColumn_ = null;
          onChanged();
        } else {
          variableSizeColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * <code>optional .Polarx.Resultset.VariableSizeColumn variable_size_column = 3;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.Builder getVariableSizeColumnBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getVariableSizeColumnFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .Polarx.Resultset.VariableSizeColumn variable_size_column = 3;</code>
       */
      public com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumnOrBuilder getVariableSizeColumnOrBuilder() {
        if (variableSizeColumnBuilder_ != null) {
          return variableSizeColumnBuilder_.getMessageOrBuilder();
        } else {
          return variableSizeColumn_ == null ?
              com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.getDefaultInstance() : variableSizeColumn_;
        }
      }
      /**
       * <code>optional .Polarx.Resultset.VariableSizeColumn variable_size_column = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn, com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.Builder, com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumnOrBuilder>
          getVariableSizeColumnFieldBuilder() {
        if (variableSizeColumnBuilder_ == null) {
          variableSizeColumnBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn, com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.Builder, com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumnOrBuilder>(
                  getVariableSizeColumn(),
                  getParentForChildren(),
                  isClean());
          variableSizeColumn_ = null;
        }
        return variableSizeColumnBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Resultset.Column)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Resultset.Column)
    private static final com.mysql.cj.polarx.protobuf.PolarxResultset.Column DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxResultset.Column();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.Column getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<Column>
        PARSER = new com.google.protobuf.AbstractParser<Column>() {
      @java.lang.Override
      public Column parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Column(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Column> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Column> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxResultset.Column getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface FixedSizeColumnOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Resultset.FixedSizeColumn)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required bytes value = 1;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <code>required bytes value = 1;</code>
     * @return The value.
     */
    com.google.protobuf.ByteString getValue();
  }
  /**
   * <pre>
   * A column with fixed width values, and it's designed for following mysql numeric types:
   *    ==============================
   *    | SQL Type | Bytes Per Value |
   *    ==============================
   *    | TINY     | 1               |
   *    ------------------------------
   *    | SHORT    | 2               |
   *    ------------------------------
   *    | INT24    | 3               |
   *    ------------------------------
   *    | LONG     | 4               |
   *    ------------------------------
   *    | LONGLONG | 8               |
   *    ------------------------------
   *    | FLOAT    | 4               |
   *    ------------------------------
   *    | DOUBLE   | 8               |
   *    ==============================
   * Byte order should be set by client using capability.
   * </pre>
   *
   * Protobuf type {@code Polarx.Resultset.FixedSizeColumn}
   */
  public  static final class FixedSizeColumn extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Resultset.FixedSizeColumn)
      FixedSizeColumnOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FixedSizeColumn.newBuilder() to construct.
    private FixedSizeColumn(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private FixedSizeColumn() {
      value_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new FixedSizeColumn();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private FixedSizeColumn(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              bitField0_ |= 0x00000001;
              value_ = input.readBytes();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FixedSizeColumn_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FixedSizeColumn_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.class, com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.Builder.class);
    }

    private int bitField0_;
    public static final int VALUE_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString value_;
    /**
     * <code>required bytes value = 1;</code>
     * @return Whether the value field is set.
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required bytes value = 1;</code>
     * @return The value.
     */
    public com.google.protobuf.ByteString getValue() {
      return value_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasValue()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBytes(1, value_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, value_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn other = (com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn) obj;

      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
      return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * A column with fixed width values, and it's designed for following mysql numeric types:
     *    ==============================
     *    | SQL Type | Bytes Per Value |
     *    ==============================
     *    | TINY     | 1               |
     *    ------------------------------
     *    | SHORT    | 2               |
     *    ------------------------------
     *    | INT24    | 3               |
     *    ------------------------------
     *    | LONG     | 4               |
     *    ------------------------------
     *    | LONGLONG | 8               |
     *    ------------------------------
     *    | FLOAT    | 4               |
     *    ------------------------------
     *    | DOUBLE   | 8               |
     *    ==============================
     * Byte order should be set by client using capability.
     * </pre>
     *
     * Protobuf type {@code Polarx.Resultset.FixedSizeColumn}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Resultset.FixedSizeColumn)
        com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumnOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FixedSizeColumn_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FixedSizeColumn_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.class, com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        value_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_FixedSizeColumn_descriptor;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn build() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn result = new com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn.getDefaultInstance()) return this;
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return hasValue();
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes value = 1;</code>
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required bytes value = 1;</code>
       * @return The value.
       */
      public com.google.protobuf.ByteString getValue() {
        return value_;
      }
      /**
       * <code>required bytes value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Polarx.Resultset.FixedSizeColumn)
    }

    // @@protoc_insertion_point(class_scope:Polarx.Resultset.FixedSizeColumn)
    private static final com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<FixedSizeColumn>
        PARSER = new com.google.protobuf.AbstractParser<FixedSizeColumn>() {
      @java.lang.Override
      public FixedSizeColumn parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new FixedSizeColumn(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<FixedSizeColumn> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<FixedSizeColumn> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxResultset.FixedSizeColumn getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface VariableSizeColumnOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Polarx.Resultset.VariableSizeColumn)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required bytes value = 1;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <code>required bytes value = 1;</code>
     * @return The value.
     */
    com.google.protobuf.ByteString getValue();
  }
  /**
   * Protobuf type {@code Polarx.Resultset.VariableSizeColumn}
   */
  public  static final class VariableSizeColumn extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Polarx.Resultset.VariableSizeColumn)
      VariableSizeColumnOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use VariableSizeColumn.newBuilder() to construct.
    private VariableSizeColumn(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VariableSizeColumn() {
      value_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new VariableSizeColumn();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private VariableSizeColumn(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              bitField0_ |= 0x00000001;
              value_ = input.readBytes();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_VariableSizeColumn_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_VariableSizeColumn_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.class, com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.Builder.class);
    }

    private int bitField0_;
    public static final int VALUE_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString value_;
    /**
     * <code>required bytes value = 1;</code>
     * @return Whether the value field is set.
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required bytes value = 1;</code>
     * @return The value.
     */
    public com.google.protobuf.ByteString getValue() {
      return value_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasValue()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBytes(1, value_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, value_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn)) {
        return super.equals(obj);
      }
      com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn other = (com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn) obj;

      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
      return unknownFields.equals(other.unknownFields);
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Polarx.Resultset.VariableSizeColumn}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Polarx.Resultset.VariableSizeColumn)
        com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumnOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_VariableSizeColumn_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_VariableSizeColumn_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.class, com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.Builder.class);
      }

      // Construct using com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        value_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.internal_static_Polarx_Resultset_VariableSizeColumn_descriptor;
      }

        @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn getDefaultInstanceForType() {
        return com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.getDefaultInstance();
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn build() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn buildPartial() {
        com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn result = new com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn) {
          return mergeFrom((com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn other) {
        if (other == com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn.getDefaultInstance()) return this;
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return hasValue();
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes value = 1;</code>
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required bytes value = 1;</code>
       * @return The value.
       */
      public com.google.protobuf.ByteString getValue() {
        return value_;
      }
      /**
       * <code>required bytes value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(com.google.protobuf.ByteString value) {
          if (value == null) {
              throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          value_ = value;
          onChanged();
          return this;
      }

        /**
         * <code>required bytes value = 1;</code>
         *
         * @return This builder for chaining.
         */
        public Builder clearValue() {
            bitField0_ = (bitField0_ & ~0x00000001);
            value_ = getDefaultInstance().getValue();
            onChanged();
            return this;
        }

        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
        }

        // @@protoc_insertion_point(builder_scope:Polarx.Resultset.VariableSizeColumn)
    }

      // @@protoc_insertion_point(class_scope:Polarx.Resultset.VariableSizeColumn)
      private static final com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn DEFAULT_INSTANCE;

      static {
          DEFAULT_INSTANCE = new com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn();
    }

    public static com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<VariableSizeColumn>
        PARSER = new com.google.protobuf.AbstractParser<VariableSizeColumn>() {
      @java.lang.Override
      public VariableSizeColumn parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new VariableSizeColumn(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<VariableSizeColumn> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<VariableSizeColumn> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.mysql.cj.polarx.protobuf.PolarxResultset.VariableSizeColumn getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Resultset_FetchDoneMoreOutParams_descriptor;
    private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Resultset_FetchDoneMoreOutParams_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Resultset_FetchDoneMoreResultsets_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Resultset_FetchDoneMoreResultsets_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Resultset_FetchDone_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Resultset_FetchDone_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Resultset_ColumnMetaData_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Resultset_ColumnMetaData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Resultset_ColumnMetaDataCompatible_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Resultset_ColumnMetaDataCompatible_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Resultset_Row_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Resultset_Row_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Resultset_TokenDone_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Resultset_TokenDone_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Polarx_Resultset_Chunk_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Polarx_Resultset_Chunk_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
        internal_static_Polarx_Resultset_Column_descriptor;
    private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_Polarx_Resultset_Column_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
        internal_static_Polarx_Resultset_FixedSizeColumn_descriptor;
    private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_Polarx_Resultset_FixedSizeColumn_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
        internal_static_Polarx_Resultset_VariableSizeColumn_descriptor;
    private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_Polarx_Resultset_VariableSizeColumn_fieldAccessorTable;

    public static com.google.protobuf.Descriptors.FileDescriptor
    getDescriptor() {
        return descriptor;
    }

    private static final com.google.protobuf.Descriptors.FileDescriptor
        descriptor;

    static {
        java.lang.String[] descriptorData = {
            "\n\026polarx_resultset.proto\022\020Polarx.Results" +
                "et\"\030\n\026FetchDoneMoreOutParams\"\031\n\027FetchDon" +
                "eMoreResultsets\"=\n\tFetchDone\022\032\n\022examined" +
                "_row_count\030\001 \001(\004\022\024\n\014chosen_index\030\002 \001(\014\"\324" +
                "\t\n\016ColumnMetaData\0228\n\004type\030\001 \002(\0162*.Polarx" +
                ".Resultset.ColumnMetaData.FieldType\022D\n\ro" +
                "riginal_type\030\002 \002(\0162-.Polarx.Resultset.Co" +
                "lumnMetaData.OriginalType\022\014\n\004name\030\003 \001(\014\022" +
                "\025\n\roriginal_name\030\004 \001(\014\022\r\n\005table\030\005 \001(\014\022\026\n" +
                "\016original_table\030\006 \001(\014\022\016\n\006schema\030\007 \001(\014\022\017\n" +
                "\007catalog\030\010 \001(\014\022\021\n\tcollation\030\t \001(\004\022\031\n\021fra" +
                "ctional_digits\030\n \001(\r\022\016\n\006length\030\013 \001(\r\022\r\n\005" +
                "flags\030\014 \001(\r\022\024\n\014content_type\030\r \001(\r\"\202\001\n\tFi" +
                "eldType\022\010\n\004SINT\020\001\022\010\n\004UINT\020\002\022\n\n\006DOUBLE\020\005\022" +
      "\t\n\005FLOAT\020\006\022\t\n\005BYTES\020\007\022\010\n\004TIME\020\n\022\014\n\010DATET" +
      "IME\020\014\022\007\n\003SET\020\017\022\010\n\004ENUM\020\020\022\007\n\003BIT\020\021\022\013\n\007DEC" +
      "IMAL\020\022\"\354\005\n\014OriginalType\022\026\n\022MYSQL_TYPE_DE" +
      "CIMAL\020\000\022\023\n\017MYSQL_TYPE_TINY\020\001\022\024\n\020MYSQL_TY" +
      "PE_SHORT\020\002\022\023\n\017MYSQL_TYPE_LONG\020\003\022\024\n\020MYSQL" +
      "_TYPE_FLOAT\020\004\022\025\n\021MYSQL_TYPE_DOUBLE\020\005\022\023\n\017" +
      "MYSQL_TYPE_NULL\020\006\022\030\n\024MYSQL_TYPE_TIMESTAM" +
      "P\020\007\022\027\n\023MYSQL_TYPE_LONGLONG\020\010\022\024\n\020MYSQL_TY" +
      "PE_INT24\020\t\022\023\n\017MYSQL_TYPE_DATE\020\n\022\023\n\017MYSQL" +
      "_TYPE_TIME\020\013\022\027\n\023MYSQL_TYPE_DATETIME\020\014\022\023\n" +
      "\017MYSQL_TYPE_YEAR\020\r\022\026\n\022MYSQL_TYPE_NEWDATE" +
      "\020\016\022\026\n\022MYSQL_TYPE_VARCHAR\020\017\022\022\n\016MYSQL_TYPE" +
      "_BIT\020\020\022\031\n\025MYSQL_TYPE_TIMESTAMP2\020\021\022\030\n\024MYS" +
      "QL_TYPE_DATETIME2\020\022\022\024\n\020MYSQL_TYPE_TIME2\020" +
      "\023\022\024\n\017MYSQL_TYPE_JSON\020\365\001\022\032\n\025MYSQL_TYPE_NE" +
                "WDECIMAL\020\366\001\022\024\n\017MYSQL_TYPE_ENUM\020\367\001\022\023\n\016MYS" +
                "QL_TYPE_SET\020\370\001\022\031\n\024MYSQL_TYPE_TINY_BLOB\020\371" +
                "\001\022\033\n\026MYSQL_TYPE_MEDIUM_BLOB\020\372\001\022\031\n\024MYSQL_" +
                "TYPE_LONG_BLOB\020\373\001\022\024\n\017MYSQL_TYPE_BLOB\020\374\001\022" +
                "\032\n\025MYSQL_TYPE_VAR_STRING\020\375\001\022\026\n\021MYSQL_TYP" +
                "E_STRING\020\376\001\022\030\n\023MYSQL_TYPE_GEOMETRY\020\377\001\"\352\002" +
                "\n\030ColumnMetaDataCompatible\0228\n\004type\030\001 \002(\016" +
                "2*.Polarx.Resultset.ColumnMetaData.Field" +
                "Type\022\014\n\004name\030\002 \001(\014\022\025\n\roriginal_name\030\003 \001(" +
                "\014\022\r\n\005table\030\004 \001(\014\022\026\n\016original_table\030\005 \001(\014" +
                "\022\016\n\006schema\030\006 \001(\014\022\017\n\007catalog\030\007 \001(\014\022\021\n\tcol" +
                "lation\030\010 \001(\004\022\031\n\021fractional_digits\030\t \001(\r\022" +
                "\016\n\006length\030\n \001(\r\022\r\n\005flags\030\013 \001(\r\022\024\n\014conten" +
                "t_type\030\014 \001(\r\022D\n\roriginal_type\030\024 \002(\0162-.Po" +
                "larx.Resultset.ColumnMetaData.OriginalTy" +
                "pe\"\024\n\003Row\022\r\n\005field\030\001 \003(\014\"\"\n\tTokenDone\022\025\n" +
                "\ntoken_left\030\001 \001(\005:\0010\"E\n\005Chunk\022\021\n\trow_cou" +
                "nt\030\001 \002(\r\022)\n\007columns\030\002 \003(\0132\030.Polarx.Resul" +
                "tset.Column\"\237\001\n\006Column\022\023\n\013null_bitmap\030\001 " +
                "\001(\014\022<\n\021fixed_size_column\030\002 \001(\0132!.Polarx." +
                "Resultset.FixedSizeColumn\022B\n\024variable_si" +
                "ze_column\030\003 \001(\0132$.Polarx.Resultset.Varia" +
                "bleSizeColumn\" \n\017FixedSizeColumn\022\r\n\005valu" +
                "e\030\001 \002(\014\"#\n\022VariableSizeColumn\022\r\n\005value\030\001" +
                " \002(\014B\036\n\034com.mysql.cj.polarx.protobuf"
        };
        descriptor = com.google.protobuf.Descriptors.FileDescriptor
            .internalBuildGeneratedFileFrom(descriptorData,
                new com.google.protobuf.Descriptors.FileDescriptor[] {
                });
        internal_static_Polarx_Resultset_FetchDoneMoreOutParams_descriptor =
            getDescriptor().getMessageTypes().get(0);
        internal_static_Polarx_Resultset_FetchDoneMoreOutParams_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_Polarx_Resultset_FetchDoneMoreOutParams_descriptor,
            new java.lang.String[] {});
        internal_static_Polarx_Resultset_FetchDoneMoreResultsets_descriptor =
            getDescriptor().getMessageTypes().get(1);
        internal_static_Polarx_Resultset_FetchDoneMoreResultsets_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_Polarx_Resultset_FetchDoneMoreResultsets_descriptor,
            new java.lang.String[] {});
        internal_static_Polarx_Resultset_FetchDone_descriptor =
            getDescriptor().getMessageTypes().get(2);
        internal_static_Polarx_Resultset_FetchDone_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_Polarx_Resultset_FetchDone_descriptor,
            new java.lang.String[] {"ExaminedRowCount", "ChosenIndex",});
        internal_static_Polarx_Resultset_ColumnMetaData_descriptor =
            getDescriptor().getMessageTypes().get(3);
    internal_static_Polarx_Resultset_ColumnMetaData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Resultset_ColumnMetaData_descriptor,
        new java.lang.String[] { "Type", "OriginalType", "Name", "OriginalName", "Table", "OriginalTable", "Schema", "Catalog", "Collation", "FractionalDigits", "Length", "Flags", "ContentType", });
    internal_static_Polarx_Resultset_ColumnMetaDataCompatible_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_Polarx_Resultset_ColumnMetaDataCompatible_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Resultset_ColumnMetaDataCompatible_descriptor,
        new java.lang.String[] { "Type", "Name", "OriginalName", "Table", "OriginalTable", "Schema", "Catalog", "Collation", "FractionalDigits", "Length", "Flags", "ContentType", "OriginalType", });
    internal_static_Polarx_Resultset_Row_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_Polarx_Resultset_Row_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Resultset_Row_descriptor,
        new java.lang.String[] { "Field", });
    internal_static_Polarx_Resultset_TokenDone_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_Polarx_Resultset_TokenDone_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Resultset_TokenDone_descriptor,
        new java.lang.String[] { "TokenLeft", });
    internal_static_Polarx_Resultset_Chunk_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_Polarx_Resultset_Chunk_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Resultset_Chunk_descriptor,
        new java.lang.String[] { "RowCount", "Columns", });
    internal_static_Polarx_Resultset_Column_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_Polarx_Resultset_Column_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Resultset_Column_descriptor,
        new java.lang.String[] { "NullBitmap", "FixedSizeColumn", "VariableSizeColumn", });
    internal_static_Polarx_Resultset_FixedSizeColumn_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_Polarx_Resultset_FixedSizeColumn_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Resultset_FixedSizeColumn_descriptor,
        new java.lang.String[] { "Value", });
    internal_static_Polarx_Resultset_VariableSizeColumn_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_Polarx_Resultset_VariableSizeColumn_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Polarx_Resultset_VariableSizeColumn_descriptor,
        new java.lang.String[] { "Value", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
